7743 lines
400 KiB
HTML
7743 lines
400 KiB
HTML
<h1 id="awesome-go">Awesome Go</h1>
|
||
<p><a href="https://awesome-go.com/"><img align="right" src="https://github.com/avelino/awesome-go/raw/main/tmpl/assets/logo.png" alt="awesome-go" title="awesome-go" /></a></p>
|
||
<p><a
|
||
href="https://github.com/avelino/awesome-go/actions/workflows/tests.yaml?query=branch%3Amain"><img
|
||
src="https://github.com/avelino/awesome-go/actions/workflows/tests.yaml/badge.svg?branch=main"
|
||
alt="Build Status" /></a> <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a> <a
|
||
href="https://gophers.slack.com/messages/awesome"><img
|
||
src="https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=red"
|
||
alt="Slack Widget" /></a> <a
|
||
href="https://app.netlify.com/sites/awesome-go/deploys"><img
|
||
src="https://api.netlify.com/api/v1/badges/83a6dcbe-0da6-433e-b586-f68109286bd5/deploy-status"
|
||
alt="Netlify Status" /></a> <a
|
||
href="https://www.trackawesomelist.com/avelino/awesome-go/"><img
|
||
src="https://www.trackawesomelist.com/badge.svg"
|
||
alt="Track Awesome List" /></a></p>
|
||
<p>We use the <em><a
|
||
href="https://github.com/gobridge/about-us/blob/master/README.md">Golang
|
||
Bridge</a></em> community Slack for instant communication, follow the <a
|
||
href="https://invite.slack.golangbridge.org/">form here to join</a>.</p>
|
||
<p><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></p>
|
||
<p><strong>Sponsorships:</strong></p>
|
||
<p><em>Special thanks to</em></p>
|
||
<div data-align="center">
|
||
<table cellpadding="5">
|
||
<tbody align="center">
|
||
<tr>
|
||
<td>
|
||
<a href="https://bit.ly/awesome-go-workos">
|
||
<img src="https://avelino.run/sponsors/workos-logo-white-bg.svg" width="200" alt="WorkOS"><br/>
|
||
<b>Your app, enterprise-ready.</b><br/> <sub>Start selling to enterprise
|
||
customers with just a few lines of code.</sub><br/> <sup>Add Single
|
||
Sign-On (and more) in minutes instead of months.</sup> </a>
|
||
</td>
|
||
<td>
|
||
<a href="https://bit.ly/awesome-go-keygen">
|
||
<img src="https://avelino.run/sponsors/keygen-logo.png" width="200" alt="keygen"><br/>
|
||
<b>An open, source-available software licensing and distribution
|
||
API.</b><br/> <sub>Securely license and distribute Go applications with
|
||
a single API.</sub><br> <sup>Add auto updates with only a few lines of
|
||
code.</sup> </a>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<a href="https://bit.ly/awesome-go-digitalocean">
|
||
<img src="https://avelino.run/sponsors/do_logo_horizontal_blue-210.png" width="200" alt="Digital Ocean">
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p><strong>Awesome Go has no monthly fee</strong>_, but we have
|
||
employees who <strong>work hard</strong> to keep it running. With money
|
||
raised, we can repay the effort of each person involved! You can see how
|
||
we calculate our billing and distribution as it is open to the entire
|
||
community. Want to be a supporter of the project click <a
|
||
href="mailto:avelinorun+oss@gmail.com?subject=awesome-go%3A%20project%20support">here</a>._</p>
|
||
<blockquote>
|
||
<p>A curated list of awesome Go frameworks, libraries, and software.
|
||
Inspired by <a
|
||
href="https://github.com/vinta/awesome-python">awesome-python</a>.</p>
|
||
</blockquote>
|
||
<p><strong>Contributing:</strong></p>
|
||
<p>Please take a quick gander at the <a
|
||
href="https://github.com/avelino/awesome-go/blob/main/CONTRIBUTING.md">contribution
|
||
guidelines</a> first. Thanks to all <a
|
||
href="https://github.com/avelino/awesome-go/graphs/contributors">contributors</a>;
|
||
you rock!</p>
|
||
<blockquote>
|
||
<p><em>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!</em></p>
|
||
</blockquote>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#awesome-go">Awesome Go</a>
|
||
<ul>
|
||
<li><a href="#contents">Contents</a></li>
|
||
<li><a href="#artificial-intelligence">Artificial Intelligence</a></li>
|
||
<li><a href="#audio-and-music">Audio and Music</a></li>
|
||
<li><a href="#authentication-and-oauth">Authentication and
|
||
OAuth</a></li>
|
||
<li><a href="#blockchain">Blockchain</a></li>
|
||
<li><a href="#bot-building">Bot Building</a></li>
|
||
<li><a href="#build-automation">Build Automation</a></li>
|
||
<li><a href="#command-line">Command Line</a>
|
||
<ul>
|
||
<li><a href="#advanced-console-uis">Advanced Console UIs</a></li>
|
||
<li><a href="#standard-cli">Standard CLI</a></li>
|
||
</ul></li>
|
||
<li><a href="#configuration">Configuration</a></li>
|
||
<li><a href="#continuous-integration">Continuous Integration</a></li>
|
||
<li><a href="#css-preprocessors">CSS Preprocessors</a></li>
|
||
<li><a href="#data-structures-and-algorithms">Data Structures and
|
||
Algorithms</a>
|
||
<ul>
|
||
<li><a href="#bit-packing-and-compression">Bit-packing and
|
||
Compression</a></li>
|
||
<li><a href="#bit-sets">Bit Sets</a></li>
|
||
<li><a href="#bloom-and-cuckoo-filters">Bloom and Cuckoo
|
||
Filters</a></li>
|
||
<li><a href="#data-structure-and-algorithm-collections">Data Structure
|
||
and Algorithm Collections</a></li>
|
||
<li><a href="#iterators">Iterators</a></li>
|
||
<li><a href="#maps">Maps</a></li>
|
||
<li><a
|
||
href="#miscellaneous-data-structures-and-algorithms">Miscellaneous Data
|
||
Structures and Algorithms</a></li>
|
||
<li><a href="#nullable-types">Nullable Types</a></li>
|
||
<li><a href="#queues">Queues</a></li>
|
||
<li><a href="#sets">Sets</a></li>
|
||
<li><a href="#text-analysis">Text Analysis</a></li>
|
||
<li><a href="#trees">Trees</a></li>
|
||
<li><a href="#pipes">Pipes</a></li>
|
||
</ul></li>
|
||
<li><a href="#database">Database</a>
|
||
<ul>
|
||
<li><a href="#caches">Caches</a></li>
|
||
<li><a href="#databases-implemented-in-go">Databases Implemented in
|
||
Go</a></li>
|
||
<li><a href="#database-schema-migration">Database Schema
|
||
Migration</a></li>
|
||
<li><a href="#database-tools">Database Tools</a></li>
|
||
<li><a href="#sql-query-builders">SQL Query Builders</a></li>
|
||
</ul></li>
|
||
<li><a href="#database-drivers">Database Drivers</a>
|
||
<ul>
|
||
<li><a href="#interfaces-to-multiple-backends">Interfaces to Multiple
|
||
Backends</a></li>
|
||
<li><a href="#relational-database-drivers">Relational Database
|
||
Drivers</a></li>
|
||
<li><a href="#nosql-database-drivers">NoSQL Database Drivers</a></li>
|
||
<li><a href="#search-and-analytic-databases">Search and Analytic
|
||
Databases</a></li>
|
||
</ul></li>
|
||
<li><a href="#date-and-time">Date and Time</a></li>
|
||
<li><a href="#distributed-systems">Distributed Systems</a></li>
|
||
<li><a href="#dynamic-dns">Dynamic DNS</a></li>
|
||
<li><a href="#email">Email</a></li>
|
||
<li><a href="#embeddable-scripting-languages">Embeddable Scripting
|
||
Languages</a></li>
|
||
<li><a href="#error-handling">Error Handling</a></li>
|
||
<li><a href="#file-handling">File Handling</a></li>
|
||
<li><a href="#financial">Financial</a></li>
|
||
<li><a href="#forms">Forms</a></li>
|
||
<li><a href="#functional">Functional</a></li>
|
||
<li><a href="#game-development">Game Development</a></li>
|
||
<li><a href="#generators">Generators</a></li>
|
||
<li><a href="#geographic">Geographic</a></li>
|
||
<li><a href="#go-compilers">Go Compilers</a></li>
|
||
<li><a href="#goroutines">Goroutines</a></li>
|
||
<li><a href="#gui">GUI</a></li>
|
||
<li><a href="#hardware">Hardware</a></li>
|
||
<li><a href="#images">Images</a></li>
|
||
<li><a href="#iot-internet-of-things">IoT (Internet of Things)</a></li>
|
||
<li><a href="#job-scheduler">Job Scheduler</a></li>
|
||
<li><a href="#json">JSON</a></li>
|
||
<li><a href="#logging">Logging</a></li>
|
||
<li><a href="#machine-learning">Machine Learning</a></li>
|
||
<li><a href="#messaging">Messaging</a></li>
|
||
<li><a href="#microsoft-office">Microsoft Office</a>
|
||
<ul>
|
||
<li><a href="#microsoft-excel">Microsoft Excel</a></li>
|
||
</ul></li>
|
||
<li><a href="#miscellaneous">Miscellaneous</a>
|
||
<ul>
|
||
<li><a href="#dependency-injection">Dependency Injection</a></li>
|
||
<li><a href="#project-layout">Project Layout</a></li>
|
||
<li><a href="#strings">Strings</a></li>
|
||
<li><a href="#uncategorized">Uncategorized</a></li>
|
||
</ul></li>
|
||
<li><a href="#natural-language-processing">Natural Language
|
||
Processing</a>
|
||
<ul>
|
||
<li><a href="#language-detection">Language Detection</a></li>
|
||
<li><a href="#morphological-analyzers">Morphological Analyzers</a></li>
|
||
<li><a href="#slugifiers">Slugifiers</a></li>
|
||
<li><a href="#tokenizers">Tokenizers</a></li>
|
||
<li><a href="#translation">Translation</a></li>
|
||
<li><a href="#transliteration">Transliteration</a></li>
|
||
</ul></li>
|
||
<li><a href="#networking">Networking</a>
|
||
<ul>
|
||
<li><a href="#http-clients">HTTP Clients</a></li>
|
||
</ul></li>
|
||
<li><a href="#opengl">OpenGL</a></li>
|
||
<li><a href="#orm">ORM</a></li>
|
||
<li><a href="#package-management">Package Management</a></li>
|
||
<li><a href="#performance">Performance</a></li>
|
||
<li><a href="#query-language">Query Language</a></li>
|
||
<li><a href="#resource-embedding">Resource Embedding</a></li>
|
||
<li><a href="#science-and-data-analysis">Science and Data
|
||
Analysis</a></li>
|
||
<li><a href="#security">Security</a></li>
|
||
<li><a href="#serialization">Serialization</a></li>
|
||
<li><a href="#server-applications">Server Applications</a></li>
|
||
<li><a href="#stream-processing">Stream Processing</a></li>
|
||
<li><a href="#template-engines">Template Engines</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
<li><a href="#text-processing">Text Processing</a>
|
||
<ul>
|
||
<li><a href="#formatters">Formatters</a></li>
|
||
<li><a href="#markup-languages">Markup Languages</a></li>
|
||
<li><a
|
||
href="#parsersencodersdecoders">Parsers/Encoders/Decoders</a></li>
|
||
<li><a href="#regular-expressions">Regular Expressions</a></li>
|
||
<li><a href="#sanitation">Sanitation</a></li>
|
||
<li><a href="#scrapers">Scrapers</a></li>
|
||
<li><a href="#rss">RSS</a></li>
|
||
<li><a href="#utilitymiscellaneous">Utility/Miscellaneous</a></li>
|
||
</ul></li>
|
||
<li><a href="#third-party-apis">Third-party APIs</a></li>
|
||
<li><a href="#utilities">Utilities</a></li>
|
||
<li><a href="#uuid">UUID</a></li>
|
||
<li><a href="#validation">Validation</a></li>
|
||
<li><a href="#version-control">Version Control</a></li>
|
||
<li><a href="#video">Video</a></li>
|
||
<li><a href="#web-frameworks">Web Frameworks</a>
|
||
<ul>
|
||
<li><a href="#middlewares">Middlewares</a>
|
||
<ul>
|
||
<li><a href="#actual-middlewares">Actual middlewares</a></li>
|
||
<li><a href="#libraries-for-creating-http-middlewares">Libraries for
|
||
creating HTTP middlewares</a></li>
|
||
</ul></li>
|
||
<li><a href="#routers">Routers</a></li>
|
||
</ul></li>
|
||
<li><a href="#webassembly">WebAssembly</a></li>
|
||
<li><a href="#windows">Windows</a></li>
|
||
<li><a href="#xml">XML</a></li>
|
||
<li><a href="#zero-trust">Zero Trust</a></li>
|
||
<li><a href="#code-analysis">Code Analysis</a></li>
|
||
<li><a href="#editor-plugins">Editor Plugins</a></li>
|
||
<li><a href="#go-generate-tools">Go Generate Tools</a></li>
|
||
<li><a href="#go-tools">Go Tools</a></li>
|
||
<li><a href="#software-packages">Software Packages</a>
|
||
<ul>
|
||
<li><a href="#devops-tools">DevOps Tools</a></li>
|
||
<li><a href="#other-software">Other Software</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a>
|
||
<ul>
|
||
<li><a href="#benchmarks">Benchmarks</a></li>
|
||
<li><a href="#conferences">Conferences</a></li>
|
||
<li><a href="#e-books">E-Books</a>
|
||
<ul>
|
||
<li><a href="#e-books-for-purchase">E-books for purchase</a></li>
|
||
<li><a href="#free-e-books">Free e-books</a></li>
|
||
</ul></li>
|
||
<li><a href="#gophers">Gophers</a></li>
|
||
<li><a href="#meetups">Meetups</a></li>
|
||
<li><a href="#style-guides">Style Guides</a></li>
|
||
<li><a href="#social-media">Social Media</a>
|
||
<ul>
|
||
<li><a href="#twitter">Twitter</a></li>
|
||
<li><a href="#reddit">Reddit</a></li>
|
||
</ul></li>
|
||
<li><a href="#websites">Websites</a>
|
||
<ul>
|
||
<li><a href="#tutorials">Tutorials</a></li>
|
||
<li><a href="#guided-learning">Guided Learning</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="artificial-intelligence">Artificial Intelligence</h2>
|
||
<p><em>Libraries for building programs that leverage AI.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/tmc/langchaingo">langchaingo</a> -
|
||
LangChainGo is a framework for developing applications powered by
|
||
language models.</li>
|
||
<li><a href="https://github.com/mudler/LocalAI">LocalAI</a> - Open
|
||
Source OpenAI alternative, self-host AI models.</li>
|
||
<li><a href="https://github.com/jmorganca/ollama">Ollama</a> - Run large
|
||
language models locally.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="audio-and-music">Audio and Music</h2>
|
||
<p><em>Libraries for manipulating audio.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/mewkiz/flac">flac</a> - Native Go FLAC
|
||
encoder/decoder with support for FLAC streams.</li>
|
||
<li><a href="https://github.com/Comcast/gaad">gaad</a> - Native Go AAC
|
||
bitstream parser.</li>
|
||
<li><a href="https://github.com/DylanMeeus/GoAudio">GoAudio</a> - Native
|
||
Go Audio Processing Library.</li>
|
||
<li><a href="https://github.com/dh1tw/gosamplerate">gosamplerate</a> -
|
||
libsamplerate bindings for go.</li>
|
||
<li><a href="https://github.com/bogem/id3v2">id3v2</a> - ID3 decoding
|
||
and encoding library for Go.</li>
|
||
<li><a href="https://github.com/gen2brain/malgo">malgo</a> - Mini audio
|
||
library.</li>
|
||
<li><a href="https://github.com/tosone/minimp3">minimp3</a> -
|
||
Lightweight MP3 decoder library.</li>
|
||
<li><a href="https://github.com/hajimehoshi/oto">Oto</a> - A low-level
|
||
library to play sound on multiple platforms.</li>
|
||
<li><a href="https://github.com/gordonklaus/portaudio">PortAudio</a> -
|
||
Go bindings for the PortAudio audio I/O library.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="authentication-and-oauth">Authentication and OAuth</h2>
|
||
<p><em>Libraries for implementing authentication schemes.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/volatiletech/authboss">authboss</a> -
|
||
Modular authentication system for the web. It tries to remove as much
|
||
boilerplate and “hard things” as possible so that each time you start a
|
||
new web project in Go, you can plug it in, configure it, and start
|
||
building your app without having to build an authentication system each
|
||
time.</li>
|
||
<li><a href="https://github.com/essentialkaos/branca">branca</a> -
|
||
branca token <a
|
||
href="https://github.com/tuupola/branca-spec">specification
|
||
implementation</a> for Golang 1.15+.</li>
|
||
<li><a href="https://github.com/hsluoyz/casbin">casbin</a> -
|
||
Authorization library that supports access control models like ACL,
|
||
RBAC, and ABAC.</li>
|
||
<li><a href="https://github.com/mengzhuo/cookiestxt">cookiestxt</a> -
|
||
provides a parser of cookies.txt file format.</li>
|
||
<li><a href="https://github.com/shaj13/go-guardian">go-guardian</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/go-jose/go-jose">go-jose</a> - Fairly
|
||
complete implementation of the JOSE working group’s JSON Web Token, JSON
|
||
Web Signatures, and JSON Web Encryption specs.</li>
|
||
<li><a href="https://github.com/dghubble/gologin">gologin</a> -
|
||
chainable handlers for login with OAuth1 and OAuth2 authentication
|
||
providers.</li>
|
||
<li><a href="https://github.com/mikespook/gorbac">gorbac</a> - provides
|
||
a lightweight role-based access control (RBAC) implementation in
|
||
Golang.</li>
|
||
<li><a href="http://github.com/Kwynto/gosession">gosession</a> - 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.</li>
|
||
<li><a href="https://github.com/markbates/goth">goth</a> - provides a
|
||
simple, clean, and idiomatic way to use OAuth and OAuth2. Handles
|
||
multiple providers out of the box.</li>
|
||
<li><a href="https://github.com/abraithwaite/jeff">jeff</a> - Simple,
|
||
flexible, secure, and idiomatic web session management with pluggable
|
||
backends.</li>
|
||
<li><a href="https://github.com/pascaldekloe/jwt">jwt</a> - Lightweight
|
||
JSON Web Token (JWT) library.</li>
|
||
<li><a href="https://github.com/cristalhq/jwt">jwt</a> - Safe, simple,
|
||
and fast JSON Web Tokens for Go.</li>
|
||
<li><a href="https://github.com/adam-hanna/jwt-auth">jwt-auth</a> - JWT
|
||
middleware for Golang http servers with many configuration options.</li>
|
||
<li><a href="https://github.com/golang-jwt/jwt">jwt-go</a> - 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.</li>
|
||
<li><a href="https://github.com/ory/keto">keto</a> - 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.</li>
|
||
<li><a href="https://github.com/tarent/loginsrv">loginsrv</a> - JWT
|
||
login microservice with pluggable backends such as OAuth2 (Github),
|
||
htpasswd, osiam.</li>
|
||
<li><a href="https://github.com/golang/oauth2">oauth2</a> - Successor of
|
||
goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs,
|
||
Compute Engine, and App Engine support.</li>
|
||
<li><a href="https://github.com/zitadel/oidc">oidc</a> - Easy to use
|
||
OpenID Connect client and server library written for Go and certified by
|
||
the OpenID Foundation</li>
|
||
<li><a href="https://github.com/openfga/openfga">openfga</a> -
|
||
Implementation of fine-grained authorization based on the “Zanzibar:
|
||
Google’s Consistent, Global Authorization System” paper. Backed by <a
|
||
href="https://www.cncf.io/">CNCF</a>.</li>
|
||
<li><a href="https://github.com/openshift/osin">osin</a> - Golang OAuth2
|
||
server library.</li>
|
||
<li><a href="https://github.com/grijul/otpgen">otpgen</a> - Library to
|
||
generate TOTP/HOTP codes.</li>
|
||
<li><a href="https://github.com/jltorresm/otpgo">otpgo</a> - Time-Based
|
||
One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library
|
||
for Go.</li>
|
||
<li><a href="https://github.com/o1egl/paseto">paseto</a> - Golang
|
||
implementation of Platform-Agnostic Security Tokens (PASETO).</li>
|
||
<li><a href="https://github.com/xyproto/permissions2">permissions2</a> -
|
||
Library for keeping track of users, login states, and permissions. Uses
|
||
secure cookies and bcrypt.</li>
|
||
<li><a href="https://github.com/SonicRoshan/scope">scope</a> - Easily
|
||
Manage OAuth2 Scopes In Go.</li>
|
||
<li><a href="https://github.com/alexedwards/scs">scs</a> - Session
|
||
Manager for HTTP servers.</li>
|
||
<li><a href="https://github.com/chmike/securecookie">securecookie</a> -
|
||
Efficient secure cookie encoding/decoding.</li>
|
||
<li><a href="https://github.com/icza/session">session</a> - Go session
|
||
management for web servers (including support for Google App Engine -
|
||
GAE).</li>
|
||
<li><a href="https://github.com/adam-hanna/sessions">sessions</a> - Dead
|
||
simple, highly performant, highly customizable sessions service for go
|
||
http servers.</li>
|
||
<li><a href="https://github.com/swithek/sessionup">sessionup</a> -
|
||
Simple, yet effective HTTP session management and identification
|
||
package.</li>
|
||
<li><a href="https://github.com/brianvoe/sjwt">sjwt</a> - Simple jwt
|
||
generator and parser.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="blockchain">Blockchain</h2>
|
||
<p><em>Tools for building blockchains.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cometbft/cometbft">cometbft</a> - A
|
||
distributed, Byzantine fault-tolerant, deterministic state machine
|
||
replication engine. It is a fork of Tendermint Core and implements the
|
||
Tendermint consensus algorithm.</li>
|
||
<li><a href="https://github.com/cosmos/cosmos-sdk">cosmos-sdk</a> - A
|
||
Framework for Building Public Blockchains in the Cosmos Ecosystem.</li>
|
||
<li><a href="https://github.com/ethereum/go-ethereum">go-ethereum</a> -
|
||
Official Go implementation of the Ethereum protocol.</li>
|
||
<li><a href="https://github.com/LimeChain/gosemble">gosemble</a> - A
|
||
Go-based framework for building Polkadot/Substrate-compatible
|
||
runtimes.</li>
|
||
<li><a href="https://github.com/ChainSafe/gossamer">gossamer</a> - A Go
|
||
implementation of the Polkadot Host.</li>
|
||
<li><a href="https://github.com/ipfs/kubo">kubo</a> - 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.</li>
|
||
<li><a href="https://github.com/gagliardetto/solana-go">solana-go</a> -
|
||
Go library to interface with Solana JSON RPC and WebSocket
|
||
interfaces.</li>
|
||
<li><a href="https://github.com/tendermint/tendermint">tendermint</a> -
|
||
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.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="bot-building">Bot Building</h2>
|
||
<p><em>Libraries for building and working with bots.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/go-telegram/bot">bot</a> -
|
||
Zero-dependencies Telegram Bot library with additional UI
|
||
components</li>
|
||
<li><a href="https://github.com/NicoNex/echotron">echotron</a> - An
|
||
elegant and concurrent library for Telegram Bots in Go.</li>
|
||
<li><a
|
||
href="https://github.com/ewohltman/ephemeral-roles">ephemeral-roles</a>
|
||
- A Discord bot for managing ephemeral roles based upon voice channel
|
||
member presence.</li>
|
||
<li><a href="https://github.com/go-chat-bot/bot">go-chat-bot</a> - IRC,
|
||
Slack & Telegram bot written in Go.</li>
|
||
<li><a href="https://joe-bot.net">go-joe</a> - A general-purpose bot
|
||
library inspired by Hubot but written in Go.</li>
|
||
<li><a href="https://github.com/oklahomer/go-sarah">go-sarah</a> -
|
||
Framework to build a bot for desired chat services including LINE,
|
||
Slack, Gitter, and more.</li>
|
||
<li><a href="https://github.com/mr-linch/go-tg">go-tg</a> - Generated
|
||
from official docs Go client library for accessing Telegram Bot API,
|
||
with batteries for building complex bots included.</li>
|
||
<li><a href="https://github.com/olebedev/go-tgbot">go-tgbot</a> - Pure
|
||
Golang Telegram Bot API wrapper, generated from swagger file,
|
||
session-based router, and middleware.</li>
|
||
<li><a href="https://github.com/gempir/go-twitch-irc">go-twitch-irc</a>
|
||
- Library to write bots for twitch.tv chat</li>
|
||
<li><a
|
||
href="https://github.com/saniales/golang-crypto-trading-bot">Golang
|
||
CryptoTrading Bot</a> - A golang implementation of a console-based
|
||
trading bot for cryptocurrency exchanges.</li>
|
||
<li><a href="https://github.com/nikepan/govkbot">govkbot</a> - Simple Go
|
||
<a href="https://vk.com">VK</a> bot library.</li>
|
||
<li><a href="https://github.com/sbstjn/hanu">hanu</a> - Framework for
|
||
writing Slack bots.</li>
|
||
<li><a href="https://github.com/stellar/kelp">Kelp</a> - official
|
||
trading and market-making bot for the <a
|
||
href="https://www.stellar.org/">Stellar</a> DEX. Works out-of-the-box,
|
||
written in Golang, compatible with centralized exchanges and custom
|
||
trading strategies.</li>
|
||
<li><a href="https://github.com/ezeoleaf/larry">larry</a> - Larry 🐦 is
|
||
a really simple Twitter bot generator that tweets random repositories
|
||
from Github built in Go.</li>
|
||
<li><a href="https://github.com/zhulik/margelet">margelet</a> -
|
||
Framework for building Telegram bots.</li>
|
||
<li><a href="https://github.com/onrik/micha">micha</a> - Go Library for
|
||
Telegram bot api.</li>
|
||
<li><a href="https://github.com/olivia-ai/olivia">olivia</a> - A chatbot
|
||
built with an artificial neural network.</li>
|
||
<li><a href="https://github.com/innogames/slack-bot">slack-bot</a> -
|
||
Ready to use Slack Bot for lazy developers: Custom commands, Jenkins,
|
||
Jira, Bitbucket, Github…</li>
|
||
<li><a href="https://github.com/shomali11/slacker">slacker</a> - Easy to
|
||
use framework to create Slack bots.</li>
|
||
<li><a
|
||
href="https://github.com/alexandre-normand/slackscot">slackscot</a> -
|
||
Another framework for building Slack bots.</li>
|
||
<li><a href="https://github.com/yanzay/tbot">tbot</a> - Telegram bot
|
||
server with API similar to net/http.</li>
|
||
<li><a href="https://github.com/tucnak/telebot">telebot</a> - Telegram
|
||
bot framework is written in Go.</li>
|
||
<li><a href="https://github.com/mymmrac/telego">telego</a> - Telegram
|
||
Bot API library for Golang with full one-to-one API implementation.</li>
|
||
<li><a
|
||
href="https://github.com/Syfaro/telegram-bot-api">telegram-bot-api</a> -
|
||
Simple and clean Telegram bot client.</li>
|
||
<li><a href="https://github.com/alfiankan/teleterm">teleterm</a> -
|
||
Telegram Bot Exec Terminal Command.</li>
|
||
<li><a href="https://github.com/kyleterry/tenyks">Tenyks</a> - Service
|
||
oriented IRC bot using Redis and JSON for messaging.</li>
|
||
<li><a href="https://github.com/wabarc/wayback">wayback</a> - A bot for
|
||
Telegram, Mastodon, Slack, and other messaging platforms archives
|
||
webpages.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="build-automation">Build Automation</h2>
|
||
<p><em>Libraries and tools help with build automation.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/gopinath-langote/1build">1build</a> -
|
||
Command line tool to frictionlessly manage project-specific
|
||
commands.</li>
|
||
<li><a href="https://github.com/GuilhermeCaruso/anko">anko</a> - Simple
|
||
application watcher for multiple programming languages.</li>
|
||
<li><a href="https://github.com/maxcnunes/gaper">gaper</a> - Builds and
|
||
restarts a Go project when it crashes or some watched file changes.</li>
|
||
<li><a href="https://go-gilbert.github.io">gilbert</a> - Build system
|
||
and task runner for Go projects.</li>
|
||
<li><a href="https://github.com/kcmvp/gob">gob</a> - <a
|
||
href="https://docs.gradle.org/">Gradle</a>/<a
|
||
href="https://maven.apache.org/">Maven</a> like build tool for Go
|
||
projects.</li>
|
||
<li><a href="https://github.com/goyek/goyek">goyek</a> - Create build
|
||
pipelines in Go.</li>
|
||
<li><a href="https://github.com/magefile/mage">mage</a> - Mage is a
|
||
make/rake-like build tool using Go.</li>
|
||
<li><a href="https://github.com/tj/mmake">mmake</a> - Modern Make.</li>
|
||
<li><a href="https://github.com/tockins/realize">realize</a> - Go build
|
||
a system with file watchers and live to reload. Run, build and watch
|
||
file changes with custom paths.</li>
|
||
<li><a href="https://github.com/go-task/task">Task</a> - simple “Make”
|
||
alternative.</li>
|
||
<li><a href="https://github.com/taskctl/taskctl">taskctl</a> -
|
||
Concurrent task runner.</li>
|
||
<li><a href="https://github.com/joerdav/xc">xc</a> - Task runner with
|
||
README.md defined tasks, executable markdown.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="command-line">Command Line</h2>
|
||
<h3 id="advanced-console-uis">Advanced Console UIs</h3>
|
||
<p><em>Libraries for building Console Applications and Console User
|
||
Interfaces.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/guptarohit/asciigraph">asciigraph</a> -
|
||
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps
|
||
with no other dependencies.</li>
|
||
<li><a href="https://github.com/logrusorgru/aurora">aurora</a> - ANSI
|
||
terminal colors that support fmt.Printf/Sprintf.</li>
|
||
<li><a
|
||
href="https://github.com/Delta456/box-cli-maker">box-cli-maker</a> -
|
||
Make Highly Customized Boxes for your CLI.</li>
|
||
<li><a href="https://github.com/Evertras/bubble-table">bubble-table</a>
|
||
- An interactive table component for bubbletea.</li>
|
||
<li><a href="https://github.com/charmbracelet/bubbles">bubbles</a> - TUI
|
||
components for bubbletea.</li>
|
||
<li><a href="https://github.com/charmbracelet/bubbletea">bubbletea</a> -
|
||
Go framework to build terminal apps, based on The Elm Architecture.</li>
|
||
<li><a href="https://github.com/mingrammer/cfmt">cfmt</a> - Contextual
|
||
fmt inspired by bootstrap color classes.</li>
|
||
<li><a href="https://github.com/i582/cfmt">cfmt</a> - Simple and
|
||
convenient formatted stylized output fully compatible with fmt
|
||
library.</li>
|
||
<li><a href="https://github.com/ttacon/chalk">chalk</a> - Intuitive
|
||
package for prettifying terminal/console output.</li>
|
||
<li><a href="https://github.com/TreyBastian/colourize">colourize</a> -
|
||
Go library for ANSI colour text in terminals.</li>
|
||
<li><a
|
||
href="https://github.com/alfiankan/crab-config-files-templating">crab-config-files-templating</a>
|
||
- Dynamic configuration file templating tool for kubernetes manifest or
|
||
general configuration files.</li>
|
||
<li><a href="https://github.com/wzshiming/ctc">ctc</a> - The
|
||
non-invasive cross-platform terminal color library does not need to
|
||
modify the Print method.</li>
|
||
<li><a href="https://github.com/workanator/go-ataman">go-ataman</a> - Go
|
||
library for rendering ANSI colored text templates in terminals.</li>
|
||
<li><a href="https://github.com/mattn/go-colorable">go-colorable</a> -
|
||
Colorable writer for windows.</li>
|
||
<li><a
|
||
href="https://github.com/daviddengcn/go-colortext">go-colortext</a> - Go
|
||
library for color output in terminals.</li>
|
||
<li><a href="https://github.com/mattn/go-isatty">go-isatty</a> - isatty
|
||
for golang.</li>
|
||
<li><a href="https://github.com/abusomani/go-palette">go-palette</a> -
|
||
Go library that provides elegant and convenient style definitions using
|
||
ANSI colors. Fully compatible & wraps the <a
|
||
href="https://pkg.go.dev/fmt">fmt library</a> for nice terminal
|
||
layouts.</li>
|
||
<li><a href="https://github.com/c-bata/go-prompt">go-prompt</a> -
|
||
Library for building a powerful interactive prompt, inspired by <a
|
||
href="https://github.com/jonathanslenders/python-prompt-toolkit">python-prompt-toolkit</a>.</li>
|
||
<li><a href="https://github.com/jroimartin/gocui">gocui</a> - Minimalist
|
||
Go library aimed at creating Console User Interfaces.</li>
|
||
<li><a
|
||
href="https://github.com/labstack/gommon/tree/master/color">gommon/color</a>
|
||
- Style terminal text.</li>
|
||
<li><a href="https://github.com/gookit/color">gookit/color</a> -
|
||
Terminal color rendering tool library, support 16 colors, 256 colors,
|
||
RGB color rendering output, compatible with Windows.</li>
|
||
<li><a href="https://github.com/charmbracelet/lipgloss">lipgloss</a> -
|
||
Declaratively define styles for color, format and layout in the
|
||
terminal.</li>
|
||
<li><a href="https://github.com/cyucelen/marker">marker</a> - Easiest
|
||
way to match and mark strings for colorful terminal outputs.</li>
|
||
<li><a href="https://github.com/vbauerster/mpb">mpb</a> - Multi progress
|
||
bar for terminal applications.</li>
|
||
<li><a href="https://github.com/schollz/progressbar">progressbar</a> -
|
||
Basic thread-safe progress bar that works in every OS.</li>
|
||
<li><a href="https://github.com/pterm/pterm">pterm</a> - A library to
|
||
beautify console output on every platform with many combinable
|
||
components.</li>
|
||
<li><a href="https://github.com/alexeyco/simpletable">simpletable</a> -
|
||
Simple tables in a terminal with Go.</li>
|
||
<li><a href="https://github.com/briandowns/spinner">spinner</a> - Go
|
||
package to easily provide a terminal spinner with options.</li>
|
||
<li><a href="https://github.com/cheynewallace/tabby">tabby</a> - A tiny
|
||
library for super simple Golang tables.</li>
|
||
<li><a href="https://github.com/tomlazar/table">table</a> - Small
|
||
library for terminal color based tables .</li>
|
||
<li><a href="https://github.com/InVisionApp/tabular">tabular</a> - Print
|
||
ASCII tables from command line utilities without the need to pass large
|
||
sets of data to the API.</li>
|
||
<li><a href="https://github.com/nsf/termbox-go">termbox-go</a> - Termbox
|
||
is a library for creating cross-platform text-based interfaces.</li>
|
||
<li><a href="https://github.com/mum4k/termdash">termdash</a> - Go
|
||
terminal dashboard based on <strong>termbox-go</strong> and inspired by
|
||
<a href="https://github.com/gizak/termui">termui</a>.</li>
|
||
<li><a href="https://github.com/muesli/termenv">termenv</a> - Advanced
|
||
ANSI style & color support for your terminal applications.</li>
|
||
<li><a href="https://github.com/gizak/termui">termui</a> - Go terminal
|
||
dashboard based on <strong>termbox-go</strong> and inspired by <a
|
||
href="https://github.com/yaronn/blessed-contrib">blessed-contrib</a>.</li>
|
||
<li><a href="https://github.com/gosuri/uilive">uilive</a> - Library for
|
||
updating terminal output in real time.</li>
|
||
<li><a href="https://github.com/gosuri/uiprogress">uiprogress</a> -
|
||
Flexible library to render progress bars in terminal applications.</li>
|
||
<li><a href="https://github.com/gosuri/uitable">uitable</a> - Library to
|
||
improve readability in terminal apps using tabular data.</li>
|
||
<li><a href="https://github.com/theckman/yacspin">yacspin</a> - Yet
|
||
Another CLi Spinner package, for working with terminal spinners.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="standard-cli">Standard CLI</h3>
|
||
<p><em>Libraries for building standard or basic Command Line
|
||
applications.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cristalhq/acmd">acmd</a> - Simple,
|
||
useful, and opinionated CLI package in Go.</li>
|
||
<li><a href="https://github.com/akamensky/argparse">argparse</a> -
|
||
Command line argument parser inspired by Python’s argparse module.</li>
|
||
<li><a href="https://github.com/cosiner/argv">argv</a> - Go library to
|
||
split command line string as arguments array using the bash syntax.</li>
|
||
<li><a href="https://github.com/rsteube/carapace">carapace</a> - Command
|
||
argument completion generator for spf13/cobra.</li>
|
||
<li><a href="https://github.com/rsteube/carapace-bin">carapace-bin</a> -
|
||
Multi-shell multi-command argument completer.</li>
|
||
<li><a href="https://github.com/rsteube/carapace-spec">carapace-spec</a>
|
||
- Define simple completions using a spec file.</li>
|
||
<li><a href="https://github.com/mkideal/cli">cli</a> - Feature-rich and
|
||
easy to use command-line package based on golang struct tags.</li>
|
||
<li><a href="https://github.com/teris-io/cli">cli</a> - Simple and
|
||
complete API for building command line interfaces in Go.</li>
|
||
<li><a href="https://github.com/tucnak/climax">climax</a> - Alternative
|
||
CLI with “human face”, in spirit of Go command.</li>
|
||
<li><a href="https://github.com/leaanthony/clir">clîr</a> - A Simple and
|
||
Clear CLI library. Dependency free.</li>
|
||
<li><a href="https://github.com/posener/cmd">cmd</a> - Extends the
|
||
standard <code>flag</code> package to support sub commands and more in
|
||
idiomatic way.</li>
|
||
<li><a href="https://github.com/hedzr/cmdr">cmdr</a> - A POSIX/GNU
|
||
style, getopt-like command-line UI Go library.</li>
|
||
<li><a href="https://github.com/spf13/cobra">cobra</a> - Commander for
|
||
modern Go CLI interactions.</li>
|
||
<li><a
|
||
href="https://github.com/rainu/go-command-chain">command-chain</a> - A
|
||
go library for configure and run command chains - such as pipelining in
|
||
unix shells.</li>
|
||
<li><a href="https://github.com/jaffee/commandeer">commandeer</a> -
|
||
Dev-friendly CLI apps: sets up flags, defaults, and usage based on
|
||
struct fields and tags.</li>
|
||
<li><a href="https://github.com/posener/complete">complete</a> - Write
|
||
bash completions in Go + Go command bash completion.</li>
|
||
<li><a href="https://github.com/dnote/dnote">Dnote</a> - A simple
|
||
command line notebook with multi-device sync.</li>
|
||
<li><a href="https://github.com/elves/elvish">elvish</a> - An expressive
|
||
programming language and a versatile interactive shell.</li>
|
||
<li><a href="https://github.com/codingconcepts/env">env</a> - Tag-based
|
||
environment configuration for structs.</li>
|
||
<li><a href="https://github.com/cosiner/flag">flag</a> - Simple but
|
||
powerful command line option parsing library for Go supporting
|
||
subcommand.</li>
|
||
<li><a href="https://github.com/integrii/flaggy">flaggy</a> - A robust
|
||
and idiomatic flags package with excellent subcommand support.</li>
|
||
<li><a href="https://github.com/sgreben/flagvar">flagvar</a> - A
|
||
collection of flag argument types for Go’s standard <code>flag</code>
|
||
package.</li>
|
||
<li><a href="https://github.com/grijul/go-andotp">go-andotp</a> - A CLI
|
||
program to encrypt/decrypt <a
|
||
href="https://github.com/andOTP/andOTP">andOTP</a> files. Can be used as
|
||
a library as well.</li>
|
||
<li><a href="https://github.com/alexflint/go-arg">go-arg</a> -
|
||
Struct-based argument parsing in Go.</li>
|
||
<li><a href="https://github.com/yitsushi/go-commander">go-commander</a>
|
||
- Go library to simplify CLI workflow.</li>
|
||
<li><a href="https://github.com/jessevdk/go-flags">go-flags</a> - go
|
||
command line option parser.</li>
|
||
<li><a
|
||
href="https://github.com/DavidGamba/go-getoptions">go-getoptions</a> -
|
||
Go option parser inspired by the flexibility of Perl’s
|
||
GetOpt::Long.</li>
|
||
<li><a href="https://github.com/devfacet/gocmd">gocmd</a> - Go library
|
||
for building command line applications.</li>
|
||
<li><a
|
||
href="https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli">hiboot
|
||
cli</a> - cli application framework with auto configuration and
|
||
dependency injection.</li>
|
||
<li><a href="https://github.com/liujianping/job">job</a> - JOB, make
|
||
your short-term command as a long-term job.</li>
|
||
<li><a href="https://github.com/alecthomas/kingpin">kingpin</a> -
|
||
Command line and flag parser supporting sub commands (superseded by
|
||
<code>kong</code>; see below).</li>
|
||
<li><a href="https://github.com/peterh/liner">liner</a> - Go
|
||
readline-like library for command-line interfaces.</li>
|
||
<li><a href="https://github.com/jxskiss/mcli">mcli</a> - A minimal but
|
||
very powerful cli library for Go.</li>
|
||
<li><a href="https://github.com/mitchellh/cli">mitchellh/cli</a> - Go
|
||
library for implementing command-line interfaces.</li>
|
||
<li><a href="https://github.com/jawher/mow.cli">mow.cli</a> - Go library
|
||
for building CLI applications with sophisticated flag and argument
|
||
parsing and validation.</li>
|
||
<li><a href="https://github.com/nanovms/ops">ops</a> - Unikernel
|
||
Builder/Orchestrator.</li>
|
||
<li><a href="https://github.com/spf13/pflag">pflag</a> - Drop-in
|
||
replacement for Go’s flag package, implementing POSIX/GNU-style
|
||
–flags.</li>
|
||
<li><a href="https://github.com/reeflective/readline">readline</a> Shell
|
||
library with modern and easy to use UI features.</li>
|
||
<li><a href="https://github.com/Zaba505/sand">sand</a> - Simple API for
|
||
creating interpreters and so much more.</li>
|
||
<li><a href="https://github.com/octago/sflags">sflags</a> - Struct based
|
||
flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other
|
||
libraries.</li>
|
||
<li><a href="https://github.com/antham/strumt">strumt</a> - Library to
|
||
create prompt chain.</li>
|
||
<li><a href="https://github.com/bobg/subcmd">subcmd</a> - Another
|
||
approach to parsing and running subcommands. Works alongside the
|
||
standard <code>flag</code> package.</li>
|
||
<li><a href="https://github.com/go-survey/survey">survey</a> - Build
|
||
interactive and accessible prompts with full support for windows and
|
||
posix terminals.</li>
|
||
<li><a href="https://github.com/liujianping/ts">ts</a> - Timestamp
|
||
convert & compare tool.</li>
|
||
<li><a href="https://github.com/ukautz/clif">ukautz/clif</a> - Small
|
||
command line interface framework.</li>
|
||
<li><a href="https://github.com/urfave/cli">urfave/cli</a> - Simple,
|
||
fast, and fun package for building command line apps in Go (formerly
|
||
codegangsta/cli).</li>
|
||
<li><a href="https://github.com/mszostok/version">version</a> - Collects
|
||
and displays CLI version information in multiple formats along with
|
||
upgrade notice.</li>
|
||
<li><a href="https://github.com/dixonwille/wlog">wlog</a> - Simple
|
||
logging interface that supports cross-platform color and
|
||
concurrency.</li>
|
||
<li><a href="https://github.com/dixonwille/wmenu">wmenu</a> - Easy to
|
||
use menu structure for cli applications that prompt users to make
|
||
choices.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="configuration">Configuration</h2>
|
||
<p><em>Libraries for configuration parsing.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cristalhq/aconfig">aconfig</a> - Simple,
|
||
useful and opinionated config loader.</li>
|
||
<li><a href="https://github.com/ilyakaznacheev/cleanenv">cleanenv</a> -
|
||
Minimalistic configuration reader (from files, ENV, and wherever you
|
||
want).</li>
|
||
<li><a href="https://github.com/JeremyLoy/config">config</a> - Cloud
|
||
native application configuration. Bind ENV to structs in only two
|
||
lines.</li>
|
||
<li><a href="https://github.com/num30/config">config</a> - configure you
|
||
app using file, environment variables, or flags in two lines of
|
||
code</li>
|
||
<li><a href="https://github.com/olebedev/config">config</a> - JSON or
|
||
YAML configuration wrapper with environment variables and flags
|
||
parsing.</li>
|
||
<li><a href="https://github.com/BoRuDar/configuration">configuration</a>
|
||
- Library for initializing configuration structs from env variables,
|
||
files, flags and ‘default’ tag.</li>
|
||
<li><a href="https://github.com/paked/configure">configure</a> -
|
||
Provides configuration through multiple sources, including JSON, flags
|
||
and environment variables.</li>
|
||
<li><a href="https://github.com/sherifabdlnaby/configuro">configuro</a>
|
||
- opinionated configuration loading & validation framework from ENV
|
||
and Files focused towards 12-Factor compliant applications.</li>
|
||
<li><a href="https://github.com/heetch/confita">confita</a> - Load
|
||
configuration in cascade from multiple backends into a struct.</li>
|
||
<li><a href="https://github.com/the4thamigo-uk/conflate">conflate</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/caarlos0/env">env</a> - Parse
|
||
environment variables to Go structs (with defaults).</li>
|
||
<li><a href="https://github.com/junk1tm/env">env</a> - A lightweight
|
||
package for loading environment variables into structs.</li>
|
||
<li><a href="https://github.com/tomazk/envcfg">envcfg</a> -
|
||
Un-marshaling environment variables to Go structs.</li>
|
||
<li><a href="https://github.com/ian-kent/envconf">envconf</a> -
|
||
Configuration from environment.</li>
|
||
<li><a href="https://github.com/vrischmann/envconfig">envconfig</a> -
|
||
Read your configuration from environment variables.</li>
|
||
<li><a href="https://github.com/antham/envh">envh</a> - Helpers to
|
||
manage environment variables.</li>
|
||
<li><a href="https://github.com/kkyr/fig">fig</a> - Tiny library for
|
||
reading configuration from a file and from environment variables (with
|
||
validation & defaults).</li>
|
||
<li><a href="https://github.com/go-gcfg/gcfg">gcfg</a> - read INI-style
|
||
configuration files into Go structs; supports user-defined types and
|
||
subsections.</li>
|
||
<li><a href="https://github.com/sakirsensoy/genv">genv</a> - Read
|
||
environment variables easily with dotenv support.</li>
|
||
<li><a href="https://github.com/PaddleHQ/go-aws-ssm">go-aws-ssm</a> - Go
|
||
package that fetches parameters from AWS System Manager - Parameter
|
||
Store.</li>
|
||
<li><a href="https://github.com/ThomasObenaus/go-conf">go-conf</a> -
|
||
Simple library for application configuration based on annotated structs.
|
||
It supports reading the configuration from environment variables, config
|
||
files and command line parameters.</li>
|
||
<li><a href="https://github.com/subpop/go-ini">go-ini</a> - A Go package
|
||
that marshals and unmarshals INI-files.</li>
|
||
<li><a
|
||
href="https://github.com/ianlopshire/go-ssm-config">go-ssm-config</a> -
|
||
Go utility for loading configuration parameters from AWS SSM (Parameter
|
||
Store).</li>
|
||
<li><a href="https://github.com/ufoscout/go-up">go-up</a> - A simple
|
||
configuration library with recursive placeholders resolution and no
|
||
magic.</li>
|
||
<li><a href="https://github.com/crgimenes/goConfig">goConfig</a> -
|
||
Parses a struct as input and populates the fields of this struct with
|
||
parameters from command line, environment variables and configuration
|
||
file.</li>
|
||
<li><a href="https://github.com/joho/godotenv">godotenv</a> - Go port of
|
||
Ruby’s dotenv library (Loads environment variables from
|
||
<code>.env</code>).</li>
|
||
<li><a href="https://github.com/ian-kent/gofigure">gofigure</a> - Go
|
||
application configuration made easy.</li>
|
||
<li><a href="https://github.com/golobby/config">GoLobby/Config</a> -
|
||
GoLobby Config is a lightweight yet powerful configuration manager for
|
||
the Go programming language.</li>
|
||
<li><a
|
||
href="https://github.com/One-com/gone/tree/master/jconf">gone/jconf</a>
|
||
- Modular JSON configuration. Keep you config structs along with the
|
||
code they configure and delegate parsing to submodules without
|
||
sacrificing full config serialization.</li>
|
||
<li><a href="https://github.com/milad-abbasi/gonfig">gonfig</a> -
|
||
Tag-based configuration parser which loads values from different
|
||
providers into typesafe struct.</li>
|
||
<li><a href="https://github.com/gookit/config">gookit/config</a> -
|
||
application config manage(load,get,set). support JSON, YAML, TOML, INI,
|
||
HCL. multi file load, data override merge.</li>
|
||
<li><a href="https://github.com/beatlabs/harvester">harvester</a> -
|
||
Harvester, a easy to use static and dynamic configuration package
|
||
supporting seeding, env vars and Consul integration.</li>
|
||
<li><a href="https://github.com/hjson/hjson-go">hjson</a> - Human JSON,
|
||
a configuration file format for humans. Relaxed syntax, fewer mistakes,
|
||
more comments.</li>
|
||
<li><a href="https://github.com/gurkankaymak/hocon">hocon</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/schachmat/ingo">ingo</a> - Flags
|
||
persisted in an ini-like config file.</li>
|
||
<li><a href="https://github.com/go-ini/ini">ini</a> - Go package to read
|
||
and write INI files.</li>
|
||
<li><a href="https://github.com/wlevene/ini">ini</a> - INI Parser &
|
||
Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch
|
||
file.</li>
|
||
<li><a href="https://github.com/joshbetz/config">joshbetz/config</a> -
|
||
Small configuration library for Go that parses environment variables,
|
||
JSON files, and reloads automatically on SIGHUP.</li>
|
||
<li><a
|
||
href="https://github.com/kelseyhightower/envconfig">kelseyhightower/envconfig</a>
|
||
- Go library for managing configuration data from environment
|
||
variables.</li>
|
||
<li><a href="https://github.com/knadh/koanf">koanf</a> - Light weight,
|
||
extensible library for reading config in Go applications. Built in
|
||
support for JSON, TOML, YAML, env, command line.</li>
|
||
<li><a href="https://github.com/nil-go/konf">konf</a> - The simplest API
|
||
for reading/watching config from file, env, flag and clouds (e.g. AWS,
|
||
Azure, GCP).</li>
|
||
<li><a href="https://github.com/lalamove/konfig">konfig</a> -
|
||
Composable, observable and performant config handling for Go for the
|
||
distributed processing era.</li>
|
||
<li><a href="https://github.com/alecthomas/kong">kong</a> - Command-line
|
||
parser with support for arbitrarily complex command-line structures and
|
||
additional sources of configuration such as YAML, JSON, TOML, etc
|
||
(successor to <code>kingpin</code>).</li>
|
||
<li><a href="https://github.com/sasbury/mini">mini</a> - Golang package
|
||
for parsing ini-style configuration files.</li>
|
||
<li><a
|
||
href="https://github.com/nasermirzaei89/env">nasermirzaei89/env</a> -
|
||
Simple useful package for read environment variables.</li>
|
||
<li><a href="https://github.com/muir/nfigure">nfigure</a> - Per-library
|
||
struct-tag based configuration from command lines (Posix &
|
||
Go-style); environment, JSON, YAML</li>
|
||
<li><a href="https://github.com/goraz/onion">onion</a> - Layer based
|
||
configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env,
|
||
and encryption using PGP.</li>
|
||
<li><a href="https://github.com/Yiling-J/piper">piper</a> - Viper
|
||
wrapper with config inheritance and key generation.</li>
|
||
<li><a href="https://github.com/tucnak/store">store</a> - Lightweight
|
||
configuration manager for Go.</li>
|
||
<li><a href="https://github.com/oblq/swap">swap</a> -
|
||
Instantiate/configure structs recursively, based on build environment.
|
||
(YAML, TOML, JSON and env).</li>
|
||
<li><a href="https://github.com/diegomarangoni/typenv">typenv</a> -
|
||
Minimalistic, zero dependency, typed environment variables library.</li>
|
||
<li><a href="https://github.com/omeid/uconfig">uConfig</a> -
|
||
Lightweight, zero-dependency, and extendable configuration
|
||
management.</li>
|
||
<li><a href="https://github.com/spf13/viper">viper</a> - Go
|
||
configuration with fangs.</li>
|
||
<li><a href="https://github.com/adrg/xdg">xdg</a> - Go implementation of
|
||
the <a
|
||
href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
|
||
Base Directory Specification</a> and <a
|
||
href="https://wiki.archlinux.org/index.php/XDG_user_directories">XDG
|
||
user directories</a>.</li>
|
||
<li><a href="https://github.com/OpenPeeDeeP/xdg">xdg</a> - Cross
|
||
platform package that follows the <a
|
||
href="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
|
||
Standard</a>.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="continuous-integration">Continuous Integration</h2>
|
||
<p><em>Tools for help with continuous integration.</em></p>
|
||
<ul>
|
||
<li><a href="https://bencher.dev/">Bencher</a> - A suite of continuous
|
||
benchmarking tools designed to catch performance regressions in CI.</li>
|
||
<li><a href="https://github.com/ovh/cds">CDS</a> - Enterprise-Grade
|
||
CI/CD and DevOps Automation Open Source Platform.</li>
|
||
<li><a href="https://github.com/opnlabs/dot">dot</a> - A minimal, local
|
||
first continuous integration system that uses Docker to run jobs
|
||
concurrently in stages.</li>
|
||
<li><a href="https://github.com/drone/drone">drone</a> - Drone is a
|
||
Continuous Integration platform built on Docker, written in Go.</li>
|
||
<li><a href="https://github.com/duck8823/duci">duci</a> - A simple ci
|
||
server no needs domain specific languages.</li>
|
||
<li><a
|
||
href="https://github.com/jidicula/go-fuzz-action">go-fuzz-action</a> -
|
||
Use Go 1.18’s built-in fuzz testing in GitHub Actions.</li>
|
||
<li><a
|
||
href="https://github.com/vladopajic/go-test-coverage">go-test-coverage</a>
|
||
- Tool and GitHub action which reports issues when test coverage is
|
||
below set threshold.</li>
|
||
<li><a href="https://github.com/nikogura/gomason">gomason</a> - Test,
|
||
Build, Sign, and Publish your go binaries from a clean workspace.</li>
|
||
<li><a href="https://github.com/GoTestTools/gotestfmt">gotestfmt</a> -
|
||
go test output for humans.</li>
|
||
<li><a href="https://github.com/mattn/goveralls">goveralls</a> - Go
|
||
integration for Coveralls.io continuous code coverage tracking
|
||
system.</li>
|
||
<li><a href="https://github.com/go-playground/overalls">overalls</a> -
|
||
Multi-Package go project coverprofile for tools like goveralls.</li>
|
||
<li><a href="https://github.com/LawrenceWoodman/roveralls">roveralls</a>
|
||
- Recursive coverage testing tool.</li>
|
||
<li><a href="https://github.com/woodpecker-ci/woodpecker">woodpecker</a>
|
||
- Woodpecker is a community fork of the Drone CI system.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="css-preprocessors">CSS Preprocessors</h2>
|
||
<p><em>Libraries for preprocessing CSS files.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/yosssi/gcss">gcss</a> - Pure Go CSS
|
||
Preprocessor.</li>
|
||
<li><a href="https://github.com/wellington/go-libsass">go-libsass</a> -
|
||
Go wrapper to the 100% Sass compatible libsass project.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="data-structures-and-algorithms">Data Structures and
|
||
Algorithms</h2>
|
||
<h3 id="bit-packing-and-compression">Bit-packing and Compression</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/iancmcc/bingo">bingo</a> - Fast,
|
||
zero-allocation, lexicographical-order-preserving packing of native
|
||
types to bytes.</li>
|
||
<li><a href="https://github.com/zhuangsirui/binpacker">binpacker</a> -
|
||
Binary packer and unpacker helps user build custom binary stream.</li>
|
||
<li><a href="https://github.com/yourbasic/bit">bit</a> - Golang set data
|
||
structure with bonus bit-twiddling functions.</li>
|
||
<li><a href="https://github.com/superwhiskers/crunch">crunch</a> - Go
|
||
package implementing buffers for handling various datatypes easily.</li>
|
||
<li><a href="https://github.com/amallia/go-ef">go-ef</a> - A Go
|
||
implementation of the Elias-Fano encoding.</li>
|
||
<li><a href="https://github.com/RoaringBitmap/roaring">roaring</a> - Go
|
||
package implementing compressed bitsets.</li>
|
||
</ul>
|
||
<h3 id="bit-sets">Bit Sets</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/kelindar/bitmap">bitmap</a> - Dense,
|
||
zero-allocation, SIMD-enabled bitmap/bitset in Go.</li>
|
||
<li><a href="https://github.com/bits-and-blooms/bitset">bitset</a> - Go
|
||
package implementing bitsets.</li>
|
||
</ul>
|
||
<h3 id="bloom-and-cuckoo-filters">Bloom and Cuckoo Filters</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/bits-and-blooms/bloom">bloom</a> - Go
|
||
package implementing Bloom filters.</li>
|
||
<li><a href="https://github.com/zhenjl/bloom">bloom</a> - Bloom filters
|
||
implemented in Go.</li>
|
||
<li><a href="https://github.com/yourbasic/bloom">bloom</a> - Golang
|
||
Bloom filter implementation.</li>
|
||
<li><a href="https://github.com/OldPanda/bloomfilter">bloomfilter</a> -
|
||
Yet another Bloomfilter implementation in Go, compatible with Java’s
|
||
Guava library.</li>
|
||
<li><a href="https://github.com/tylertreat/BoomFilters">boomfilters</a>
|
||
- Probabilistic data structures for processing continuous, unbounded
|
||
streams.</li>
|
||
<li><a href="https://github.com/linvon/cuckoo-filter">cuckoo-filter</a>
|
||
- 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.</li>
|
||
<li><a href="https://github.com/seiflotfy/cuckoofilter">cuckoofilter</a>
|
||
- Cuckoo filter: a good alternative to a counting bloom filter
|
||
implemented in Go.</li>
|
||
<li><a href="https://github.com/TheTannerRyan/ring">ring</a> - Go
|
||
implementation of a high performance, thread safe bloom filter.</li>
|
||
</ul>
|
||
<h3 id="data-structure-and-algorithm-collections">Data Structure and
|
||
Algorithm Collections</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/shady831213/algorithms">algorithms</a> -
|
||
Algorithms and data structures.CLRS study.</li>
|
||
<li><a
|
||
href="https://github.com/Workiva/go-datastructures">go-datastructures</a>
|
||
- Collection of useful, performant, and thread-safe data
|
||
structures.</li>
|
||
<li><a href="https://github.com/emirpasic/gods">gods</a> - Go Data
|
||
Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees,
|
||
HashSet etc.</li>
|
||
<li><a href="https://github.com/liyue201/gostl">gostl</a> - Data
|
||
structure and algorithm library for go, designed to provide functions
|
||
similar to C++ STL.</li>
|
||
</ul>
|
||
<h3 id="iterators">Iterators</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/yaa110/goterator">goterator</a> -
|
||
Iterator implementation to provide map and reduce functionalities.</li>
|
||
<li><a href="https://github.com/disksing/iter">iter</a> - Go
|
||
implementation of C++ STL iterators and algorithms.</li>
|
||
</ul>
|
||
<h3 id="maps">Maps</h3>
|
||
<p>See also <a href="#database">Database</a> for more complex key-value
|
||
stores, and <a href="#trees">Trees</a> for additional ordered map
|
||
implementations.</p>
|
||
<ul>
|
||
<li><a href="https://github.com/lrita/cmap">cmap</a> - a thread-safe
|
||
concurrent map for go, support using <code>interface{}</code> as key and
|
||
auto scale up shards.</li>
|
||
<li><a href="https://github.com/srfrog/dict">dict</a> - Python-like
|
||
dictionaries (dict) for Go.</li>
|
||
<li><a href="https://github.com/goradd/maps">goradd/maps</a> - Go 1.18+
|
||
generic map interface for maps; safe maps; ordered maps; ordered, safe
|
||
maps; etc.</li>
|
||
</ul>
|
||
<h3 id="miscellaneous-data-structures-and-algorithms">Miscellaneous Data
|
||
Structures and Algorithms</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/free/concurrent-writer">concurrent-writer</a> -
|
||
Highly concurrent drop-in replacement for
|
||
<code>bufio.Writer</code>.</li>
|
||
<li><a href="https://github.com/InVisionApp/conjungo">conjungo</a> - A
|
||
small, powerful and flexible merge library.</li>
|
||
<li><a
|
||
href="https://github.com/seiflotfy/count-min-log">count-min-log</a> - Go
|
||
implementation Count-Min-Log sketch: Approximately counting with
|
||
approximate counters (Like Count-Min sketch but using less memory).</li>
|
||
<li><a href="https://github.com/cocoonspace/fsm">fsm</a> - Finite-State
|
||
Machine package.</li>
|
||
<li><a href="https://github.com/nwillc/genfuncs">genfuncs</a> - Go 1.18+
|
||
generics package inspired by Kotlin’s Sequence and Map.</li>
|
||
<li><a href="https://github.com/bobg/go-generics">go-generics</a> -
|
||
Generic slice, map, set, iterator, and goroutine utilities.</li>
|
||
<li><a href="https://github.com/hailocab/go-geoindex">go-geoindex</a> -
|
||
In-memory geo index.</li>
|
||
<li><a href="https://github.com/francesconi/go-rampart">go-rampart</a> -
|
||
Determine how intervals relate to each other.</li>
|
||
<li><a href="https://github.com/aurelien-rainone/go-rquad">go-rquad</a>
|
||
- Region quadtrees with efficient point location and neighbour
|
||
finding.</li>
|
||
<li><a href="https://github.com/barweiss/go-tuple">go-tuple</a> -
|
||
Generic tuple implementation for Go 1.18+.</li>
|
||
<li><a href="https://github.com/daichi-m/go18ds">go18ds</a> - Go Data
|
||
Structures using Go 1.18 generics.</li>
|
||
<li><a href="https://github.com/xxjwxc/gofal">gofal</a> - fractional api
|
||
for Go.</li>
|
||
<li><a href="https://github.com/esimov/gogu">gogu</a> - A comprehensive,
|
||
reusable and efficient concurrent-safe generics utility functions and
|
||
data structures library.</li>
|
||
<li><a href="https://github.com/kniren/gota">gota</a> - Implementation
|
||
of dataframes, series, and data wrangling methods for Go.</li>
|
||
<li><a href="https://github.com/emvi/hide">hide</a> - ID type with
|
||
marshalling to/from hash to prevent sending IDs to clients.</li>
|
||
<li><a href="https://github.com/google/hilbert">hilbert</a> - Go package
|
||
for mapping values to and from space-filling curves, such as Hilbert and
|
||
Peano curves.</li>
|
||
<li><a href="https://github.com/axiomhq/hyperloglog">hyperloglog</a> -
|
||
HyperLogLog implementation with Sparse, LogLog-Beta bias correction and
|
||
TailCut space reduction.</li>
|
||
<li><a href="https://github.com/shipt/plinko">plinko</a> - 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.</li>
|
||
<li><a href="https://github.com/s0rg/quadtree">quadtree</a> - Generic,
|
||
zero-alloc, 100%-test covered quadtree.</li>
|
||
<li><a href="https://github.com/srfrog/slices">slices</a> - Functions
|
||
that operate on slices; like <code>package strings</code> but adapted to
|
||
work with slices.</li>
|
||
<li><a href="https://github.com/twharmon/slices">slices</a> - Pure,
|
||
generic functions for slices.</li>
|
||
</ul>
|
||
<h3 id="nullable-types">Nullable Types</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/kak-tus/nan">nan</a> - Zero allocation
|
||
Nullable structures in one library with handy conversion functions,
|
||
marshallers and unmarshallers.</li>
|
||
<li><a href="https://github.com/emvi/null">null</a> - Nullable Go types
|
||
that can be marshalled/unmarshalled to/from JSON.</li>
|
||
<li><a href="https://github.com/gurukami/typ">typ</a> - Null Types, Safe
|
||
primitive type conversion and fetching value from complex
|
||
structures.</li>
|
||
</ul>
|
||
<h3 id="queues">Queues</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/edwingeng/deque">deque</a> - A highly
|
||
optimized double-ended queue.</li>
|
||
<li><a href="https://github.com/gammazero/deque">deque</a> - Fast
|
||
ring-buffer deque (double-ended queue).</li>
|
||
<li><a
|
||
href="https://github.com/enriquebris/goconcurrentqueue">goconcurrentqueue</a>
|
||
- Concurrent FIFO queue.</li>
|
||
<li><a href="https://github.com/embano1/memlog">memlog</a> - An easy to
|
||
use, lightweight, thread-safe and append-only in-memory data structure
|
||
inspired by Apache Kafka.</li>
|
||
<li><a href="https://github.com/adrianbrad/queue">queue</a> - Multiple
|
||
thread-safe, generic queue implementations for Go.</li>
|
||
</ul>
|
||
<h3 id="sets">Sets</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ihebu/dsu">dsu</a> - Disjoint Set data
|
||
structure implementation in Go.</li>
|
||
<li><a href="https://github.com/deckarep/golang-set">golang-set</a> -
|
||
Thread-Safe and Non-Thread-Safe high-performance sets for Go.</li>
|
||
<li><a href="https://github.com/zoumo/goset">goset</a> - A useful Set
|
||
collection implementation for Go.</li>
|
||
<li><a href="https://github.com/StudioSol/set">set</a> - Simple set data
|
||
structure implementation in Go using LinkedHashMap.</li>
|
||
</ul>
|
||
<h3 id="text-analysis">Text Analysis</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/blevesearch/bleve">bleve</a> - Modern
|
||
text indexing library for go.</li>
|
||
<li><a
|
||
href="https://github.com/plar/go-adaptive-radix-tree">go-adaptive-radix-tree</a>
|
||
- Go implementation of Adaptive Radix Tree.</li>
|
||
<li><a href="https://github.com/hbollon/go-edlib">go-edlib</a> - Go
|
||
string comparison and edit distance algorithms library (Levenshtein,
|
||
LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with
|
||
Unicode.</li>
|
||
<li><a href="https://github.com/agext/levenshtein">levenshtein</a> -
|
||
Levenshtein distance and similarity metrics with customizable edit costs
|
||
and Winkler-like bonus for common prefix.</li>
|
||
<li><a href="https://github.com/agnivade/levenshtein">levenshtein</a> -
|
||
Implementation to calculate levenshtein distance in Go.</li>
|
||
<li><a href="https://github.com/BlackRabbitt/mspm">mspm</a> -
|
||
Multi-String Pattern Matching Algorithm for information retrieval.</li>
|
||
<li><a href="https://github.com/MonaxGT/parsefields">parsefields</a> -
|
||
Tools for parse JSON-like logs for collecting unique fields and
|
||
events.</li>
|
||
<li><a href="https://github.com/viant/ptrie">ptrie</a> - An
|
||
implementation of prefix tree.</li>
|
||
<li><a href="https://github.com/derekparker/trie">trie</a> - Trie
|
||
implementation in Go.</li>
|
||
</ul>
|
||
<h3 id="trees">Trees</h3>
|
||
<ul>
|
||
<li><a href="http://github.com/bobg/hashsplit">hashsplit</a> - Split
|
||
byte streams into chunks, and arrange chunks into trees, with boundaries
|
||
determined by content, not position.</li>
|
||
<li><a href="https://github.com/bobg/merkle">merkle</a> -
|
||
Space-efficient computation of Merkle root hashes and inclusion
|
||
proofs.</li>
|
||
<li><a href="https://github.com/MauriceGit/skiplist">skiplist</a> - Very
|
||
fast Go Skiplist implementation.</li>
|
||
<li><a href="https://github.com/gansidui/skiplist">skiplist</a> -
|
||
Skiplist implementation in Go.</li>
|
||
<li><a href="https://github.com/perdata/treap">treap</a> - Persistent,
|
||
fast ordered map using tree heaps.</li>
|
||
<li><a href="https://github.com/igrmk/treemap">treemap</a> - Generic
|
||
key-sorted map using a red-black tree under the hood.</li>
|
||
</ul>
|
||
<h3 id="pipes">Pipes</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/tejzpr/ordered-concurrently">ordered-concurrently</a>
|
||
- Go module that processes work concurrently and returns output in a
|
||
channel in the order of input.</li>
|
||
<li><a href="https://github.com/nazar256/parapipe">parapipe</a> - FIFO
|
||
Pipeline which parallels execution on each stage while maintaining the
|
||
order of messages and results.</li>
|
||
<li><a href="https://github.com/hyfather/pipeline">pipeline</a> - An
|
||
implementation of pipelines with fan-in and fan-out.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="database">Database</h2>
|
||
<h3 id="caches">Caches</h3>
|
||
<p><em>Data stores with expiring records, in-memory distributed data
|
||
stores, or in-memory subsets of file-based databases.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/floatdrop/2q">2q</a> - 2Q in-memory
|
||
cache implementation.</li>
|
||
<li><a href="https://github.com/iwanbk/bcache">bcache</a> - Eventually
|
||
consistent distributed in-memory cache Go library.</li>
|
||
<li><a href="https://github.com/allegro/bigcache">BigCache</a> -
|
||
Efficient key/value cache for gigabytes of data.</li>
|
||
<li><a href="https://github.com/akyoto/cache">cache</a> - In-memory
|
||
key:value store with expiration time, 0 dependencies, <100 LoC, 100%
|
||
coverage.</li>
|
||
<li><a href="https://github.com/muesli/cache2go">cache2go</a> -
|
||
In-memory key:value cache which supports automatic invalidation based on
|
||
timeouts.</li>
|
||
<li><a href="https://github.com/faabiosr/cachego">cachego</a> - Golang
|
||
Cache component for multiple drivers.</li>
|
||
<li><a
|
||
href="https://github.com/oaStuff/clusteredBigCache">clusteredBigCache</a>
|
||
- BigCache with clustering support and individual item expiration.</li>
|
||
<li><a
|
||
href="https://github.com/oracle/coherence-go-client">coherence-go-client</a>
|
||
- Full implementation of Oracle Coherence cache API for Go applications
|
||
using gRPC as network transport.</li>
|
||
<li><a
|
||
href="https://github.com/codingsince1985/couchcache">couchcache</a> -
|
||
RESTful caching micro-service backed by Couchbase server.</li>
|
||
<li><a href="https://github.com/VictoriaMetrics/fastcache">fastcache</a>
|
||
- fast thread-safe inmemory cache for big number of entries. Minimizes
|
||
GC overhead.</li>
|
||
<li><a href="https://github.com/bluele/gcache">GCache</a> - Cache
|
||
library with support for expirable Cache, LFU, LRU and ARC.</li>
|
||
<li><a href="https://github.com/ulovecode/gdcache">gdcache</a> - A pure
|
||
non-intrusive cache library implemented by golang, you can use it to
|
||
implement your own distributed cache.</li>
|
||
<li><a href="https://github.com/viney-shih/go-cache">go-cache</a> - A
|
||
flexible multi-layer Go caching library to deal with in-memory and
|
||
shared cache by adopting Cache-Aside pattern.</li>
|
||
<li><a href="https://github.com/elastic/go-freelru">go-freelru</a> A
|
||
GC-less, fast and generic LRU hashmap library with optional locking,
|
||
sharding, eviction and expiration.</li>
|
||
<li><a href="https://github.com/OrlovEvgeny/go-mcache">go-mcache</a> -
|
||
Fast in-memory key:value store/cache library. Pointer caches.</li>
|
||
<li><a href="https://github.com/eko/gocache">gocache</a> - A complete Go
|
||
cache library with multiple stores (memory, memcache, redis, …),
|
||
chainable, loadable, metrics cache and more.</li>
|
||
<li><a href="https://github.com/yuseferi/gocache">gocache</a> - A data
|
||
race free Go ache library with high performance and auto pruge
|
||
functionality</li>
|
||
<li><a href="https://github.com/golang/groupcache">groupcache</a> -
|
||
Groupcache is a caching and cache-filling library, intended as a
|
||
replacement for memcached in many cases.</li>
|
||
<li><a href="https://github.com/erni27/imcache">imcache</a> - A generic
|
||
in-memory cache Go library. It supports expiration, sliding expiration,
|
||
max entries limit, eviction callbacks and sharding.</li>
|
||
<li><a href="https://github.com/no-src/nscache">nscache</a> - A Go
|
||
caching framework that supports multiple data source drivers.</li>
|
||
<li><a href="https://github.com/maypok86/otter">otter</a> - A high
|
||
performance lockless cache for Go. Many times faster than Ristretto and
|
||
friends.</li>
|
||
<li><a
|
||
href="https://github.com/rocketlaunchr/remember-go">remember-go</a> - A
|
||
universal interface for caching slow database queries (backed by redis,
|
||
memcached, ristretto, or in-memory).</li>
|
||
<li><a href="https://github.com/Yiling-J/theine-go">theine</a> - High
|
||
performance, near optimal in-memory cache with proactive TTL expiration
|
||
and generics.</li>
|
||
<li><a href="https://github.com/zekroTJA/timedmap">timedmap</a> - Map
|
||
with expiring key-value pairs.</li>
|
||
<li><a href="https://github.com/jellydator/ttlcache">ttlcache</a> - An
|
||
in-memory cache with item expiration and generics.</li>
|
||
<li><a href="https://github.com/cheshir/ttlcache">ttlcache</a> -
|
||
In-memory key value storage with TTL for each record.</li>
|
||
</ul>
|
||
<h3 id="databases-implemented-in-go">Databases Implemented in Go</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/dgraph-io/badger">badger</a> - Fast
|
||
key-value store in Go.</li>
|
||
<li><a href="https://github.com/etcd-io/bbolt">bbolt</a> - An embedded
|
||
key/value database for Go.</li>
|
||
<li><a href="https://git.mills.io/prologic/bitcask">Bitcask</a> -
|
||
Bitcask is an embeddable, persistent and fast key-value (KV) database
|
||
written in pure Go with predictable read/write performance, low latency
|
||
and high throughput thanks to the bitcask on-disk layout (LSM+WAL).</li>
|
||
<li><a href="https://github.com/tidwall/buntdb">buntdb</a> - Fast,
|
||
embeddable, in-memory key/value database for Go with custom indexing and
|
||
spatial support.</li>
|
||
<li><a href="https://github.com/ostafen/clover">clover</a> - A
|
||
lightweight document-oriented NoSQL database written in pure
|
||
Golang.</li>
|
||
<li><a href="https://github.com/cockroachdb/cockroach">cockroach</a> -
|
||
Scalable, Geo-Replicated, Transactional Datastore.</li>
|
||
<li><a href="https://github.com/claygod/coffer">Coffer</a> - Simple ACID
|
||
key-value database that supports transactions.</li>
|
||
<li><a href="https://github.com/kelindar/column">column</a> -
|
||
High-performance, columnar, embeddable in-memory store with bitmap
|
||
indexing and transactions.</li>
|
||
<li><a href="https://github.com/CovenantSQL/CovenantSQL">CovenantSQL</a>
|
||
- CovenantSQL is a SQL database on blockchain.</li>
|
||
<li><a href="https://github.com/paranoidguy/databunker">Databunker</a> -
|
||
Personally identifiable information (PII) storage service built to
|
||
comply with GDPR and CCPA.</li>
|
||
<li><a href="https://github.com/dgraph-io/dgraph">dgraph</a> - Scalable,
|
||
Distributed, Low Latency, High Throughput Graph Database.</li>
|
||
<li><a href="https://github.com/peterbourgon/diskv">diskv</a> -
|
||
Home-grown disk-backed key-value store.</li>
|
||
<li><a href="https://github.com/dolthub/dolt">dolt</a> - Dolt – It’s Git
|
||
for Data.</li>
|
||
<li><a href="https://github.com/dtm-labs/dtf">dtf</a> - A distributed
|
||
transaction manager. Support XA, TCC, SAGA, Reliable Messages.</li>
|
||
<li><a href="https://github.com/krotik/eliasdb">eliasdb</a> -
|
||
Dependency-free, transactional graph database with REST API, phrase
|
||
search and SQL-like query language.</li>
|
||
<li><a href="https://github.com/hdt3213/godis">godis</a> - A Golang
|
||
implemented high-performance Redis server and cluster.</li>
|
||
<li><a href="https://github.com/syndtr/goleveldb">goleveldb</a> -
|
||
Implementation of the <a
|
||
href="https://github.com/google/leveldb">LevelDB</a> key/value database
|
||
in Go.</li>
|
||
<li><a href="https://github.com/jameycribbs/hare">hare</a> - A simple
|
||
database management system that stores each table as a text file of
|
||
line-delimited JSON.</li>
|
||
<li><a href="https://github.com/codenotary/immudb">immudb</a> - immudb
|
||
is a lightweight, high-speed immutable database for systems and
|
||
applications written in Go.</li>
|
||
<li><a href="https://github.com/influxdb/influxdb">influxdb</a> -
|
||
Scalable datastore for metrics, events, and real-time analytics.</li>
|
||
<li><a href="https://github.com/siddontang/ledisdb">ledisdb</a> -
|
||
Ledisdb is a high performance NoSQL like Redis based on LevelDB.</li>
|
||
<li><a href="https://github.com/jmhodges/levigo">levigo</a> - Levigo is
|
||
a Go wrapper for LevelDB.</li>
|
||
<li><a href="https://github.com/amit-davidson/LibraDB">libradb</a> -
|
||
LibraDB is a simple database with less then 1000 lines of code for
|
||
learning.</li>
|
||
<li><a href="https://github.com/lindb/lindb">LinDB</a> - LinDB is a
|
||
scalable, high performance, high availability distributed time series
|
||
database.</li>
|
||
<li><a href="https://github.com/flower-corp/lotusdb">lotusdb</a> - Fast
|
||
k/v database compatible with lsm and b+tree.</li>
|
||
<li><a href="https://github.com/milvus-io/milvus">Milvus</a> - Milvus is
|
||
a vector database for embedding management, analytics and search.</li>
|
||
<li><a href="https://github.com/couchbase/moss">moss</a> - Moss is a
|
||
simple LSM key-value storage engine written in 100% Go.</li>
|
||
<li><a href="https://github.com/xujiajun/nutsdb">nutsdb</a> - 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.</li>
|
||
<li><a href="https://github.com/objectbox/objectbox-go">objectbox-go</a>
|
||
- High-performance embedded Object Database (NoSQL) with Go API.</li>
|
||
<li><a href="https://github.com/fern4lvarez/piladb">piladb</a> -
|
||
Lightweight RESTful database engine based on stack data structures.</li>
|
||
<li><a href="https://github.com/akrylysov/pogreb">pogreb</a> - Embedded
|
||
key-value store for read-heavy workloads.</li>
|
||
<li><a href="https://github.com/prometheus/prometheus">prometheus</a> -
|
||
Monitoring system and time series database.</li>
|
||
<li><a href="https://github.com/recoilme/pudge">pudge</a> - Fast and
|
||
simple key/value store written using Go’s standard library.</li>
|
||
<li><a href="https://github.com/jamf/regatta">regatta</a> - Fast,
|
||
simple, geo-distributed KV store built for cloud native era.</li>
|
||
<li><a href="https://github.com/roseduan/rosedb">rosedb</a> - An
|
||
embedded k-v database based on LSM+WAL, supports string, list, hash,
|
||
set, zset.</li>
|
||
<li><a href="https://github.com/rqlite/rqlite">rqlite</a> - The
|
||
lightweight, distributed, relational database built on SQLite.</li>
|
||
<li><a href="https://github.com/rafaeljesus/tempdb">tempdb</a> -
|
||
Key-value store for temporary items.</li>
|
||
<li><a href="https://github.com/pingcap/tidb">tidb</a> - TiDB is a
|
||
distributed SQL database. Inspired by the design of Google F1.</li>
|
||
<li><a href="https://github.com/HouzuoGuo/tiedot">tiedot</a> - Your
|
||
NoSQL database powered by Golang.</li>
|
||
<li><a href="https://github.com/unit-io/unitdb">unitdb</a> - Fast
|
||
timeseries database for IoT, realtime messaging applications. Access
|
||
unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd
|
||
application.</li>
|
||
<li><a href="https://github.com/chrislusf/vasto">Vasto</a> - A
|
||
distributed high-performance key-value store. On Disk. Eventual
|
||
consistent. HA. Able to grow or shrink without service
|
||
interruption.</li>
|
||
<li><a
|
||
href="https://github.com/VictoriaMetrics/VictoriaMetrics">VictoriaMetrics</a>
|
||
- fast, resource-effective and scalable open source time series
|
||
database. May be used as long-term remote storage for Prometheus.
|
||
Supports PromQL.</li>
|
||
</ul>
|
||
<h3 id="database-schema-migration">Database Schema Migration</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ariga/atlas">atlas</a> - A Database
|
||
Toolkit. A CLI designed to help companies better work with their
|
||
data.</li>
|
||
<li><a href="https://github.com/khezen/avro">avro</a> - Discover SQL
|
||
schemas and convert them to AVRO schemas. Query SQL records into AVRO
|
||
bytes.</li>
|
||
<li><a href="https://github.com/bytebase/bytebase">bytebase</a> - Safe
|
||
database schema change and version control for DevOps teams.</li>
|
||
<li><a href="https://github.com/GuiaBolso/darwin">darwin</a> - Database
|
||
schema evolution library for Go.</li>
|
||
<li><a href="https://github.com/amacneil/dbmate">dbmate</a> - A
|
||
lightweight, framework-agnostic database migration tool.</li>
|
||
<li><a href="https://github.com/RichardKnop/go-fixtures">go-fixtures</a>
|
||
- Django style fixtures for Golang’s excellent built-in database/sql
|
||
library.</li>
|
||
<li><a href="https://github.com/lawzava/go-pg-migrate">go-pg-migrate</a>
|
||
- CLI-friendly package for go-pg migrations management.</li>
|
||
<li><a
|
||
href="https://github.com/robinjoseph08/go-pg-migrations">go-pg-migrations</a>
|
||
- A Go package to help write migrations with go-pg/pg.</li>
|
||
<li><a href="https://github.com/linkedin/goavro">goavro</a> - A Go
|
||
package that encodes and decodes Avro data.</li>
|
||
<li><a href="https://github.com/rafaelespinoza/godfish">godfish</a> -
|
||
Database migration manager, works with native query language. Support
|
||
for cassandra, mysql, postgres, sqlite3.</li>
|
||
<li><a href="https://github.com/pressly/goose">goose</a> - Database
|
||
migration tool. You can manage your database’s evolution by creating
|
||
incremental SQL or Go scripts.</li>
|
||
<li><a href="https://github.com/Kachit/gorm-seeder">gorm-seeder</a> -
|
||
Simple database seeder for Gorm ORM.</li>
|
||
<li><a href="https://github.com/go-gormigrate/gormigrate">gormigrate</a>
|
||
- Database schema migration helper for Gorm ORM.</li>
|
||
<li><a href="https://github.com/muir/libschema">libschema</a> - Define
|
||
your migrations separately in each library. Migrations for open source
|
||
libraries. MySQL & PostgreSQL.</li>
|
||
<li><a href="https://github.com/golang-migrate/migrate">migrate</a> -
|
||
Database migrations. CLI and Golang library.</li>
|
||
<li><a href="https://github.com/lopezator/migrator">migrator</a> - Dead
|
||
simple Go database migration library.</li>
|
||
<li><a href="https://github.com/larapulse/migrator">migrator</a> - MySQL
|
||
database migrator designed to run migrations to your features and manage
|
||
database schema update with intuitive go code.</li>
|
||
<li><a href="https://github.com/adlio/schema">schema</a> - Library to
|
||
embed schema migrations for database/sql-compatible databases inside
|
||
your Go binaries.</li>
|
||
<li><a href="https://github.com/skeema/skeema">skeema</a> - Pure-SQL
|
||
schema management system for MySQL, with support for sharding and
|
||
external online schema change tools.</li>
|
||
<li><a href="https://github.com/gobuffalo/pop/tree/master/soda">soda</a>
|
||
- Database migration, creation, ORM, etc… for MySQL, PostgreSQL, and
|
||
SQLite.</li>
|
||
<li><a href="https://github.com/rubenv/sql-migrate">sql-migrate</a> -
|
||
Database migration tool. Allows embedding migrations into the
|
||
application using go-bindata.</li>
|
||
<li><a href="https://github.com/sunary/sqlize">sqlize</a> - Database
|
||
migration generator. Allows generate sql migration from model and
|
||
existing sql by differ them.</li>
|
||
</ul>
|
||
<h3 id="database-tools">Database Tools</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/Vertamedia/chproxy">chproxy</a> - HTTP
|
||
proxy for ClickHouse database.</li>
|
||
<li><a
|
||
href="https://github.com/nikepan/clickhouse-bulk">clickhouse-bulk</a> -
|
||
Collects small inserts and sends big requests to ClickHouse
|
||
servers.</li>
|
||
<li><a href="https://github.com/sj14/dbbench">dbbench</a> - Database
|
||
benchmarking tool with support for several databases and scripts.</li>
|
||
<li><a href="https://github.com/codingconcepts/dg">dg</a> - A fast data
|
||
generator that produces CSV files from generated relational data.</li>
|
||
<li><a href="https://github.com/twharmon/dynago">dynago</a> - Simplify
|
||
working with AWS DynamoDB.</li>
|
||
<li><a href="https://github.com/siddontang/go-mysql">go-mysql</a> - Go
|
||
toolset to handle MySQL protocol and replication.</li>
|
||
<li><a
|
||
href="https://github.com/siddontang/go-mysql-elasticsearch">go-mysql-elasticsearch</a>
|
||
- Sync your MySQL data into Elasticsearch automatically.</li>
|
||
<li><a href="https://golang.yandex/hasql">hasql</a> - Library for
|
||
accessing multi-host SQL database installations.</li>
|
||
<li><a href="https://github.com/flike/kingshard">kingshard</a> -
|
||
kingshard is a high performance proxy for MySQL powered by Golang.</li>
|
||
<li><a href="https://github.com/knocknote/octillery">octillery</a> - Go
|
||
package for sharding databases ( Supports every ORM or raw SQL ).</li>
|
||
<li><a href="https://github.com/liweiyi88/onedump">onedump</a> -
|
||
Database backup from different drivers to different destinations with
|
||
one command and configuration.</li>
|
||
<li><a href="https://github.com/github/orchestrator">orchestrator</a> -
|
||
MySQL replication topology manager & visualizer.</li>
|
||
<li><a
|
||
href="https://github.com/cybertec-postgresql/pg_timetable">pg_timetable</a>
|
||
- Advanced scheduling for PostgreSQL.</li>
|
||
<li><a href="https://github.com/sosedoff/pgweb">pgweb</a> - Web-based
|
||
PostgreSQL database browser.</li>
|
||
<li><a href="https://github.com/hexdigest/prep">prep</a> - Use prepared
|
||
SQL statements without changing your code.</li>
|
||
<li><a href="https://github.com/prest/prest">pREST</a> - Simplify and
|
||
accelerate development, ⚡ instant, realtime, high-performance on any
|
||
Postgres application, existing or new.</li>
|
||
<li><a href="https://github.com/HDT3213/rdb">rdb</a> - Redis RDB file
|
||
parser for secondary development and memory analysis.</li>
|
||
<li><a href="https://github.com/andizzle/rwdb">rwdb</a> - rwdb provides
|
||
read replica capability for multiple database servers setup.</li>
|
||
<li><a href="https://github.com/youtube/vitess">vitess</a> - vitess
|
||
provides servers and tools which facilitate scaling of MySQL databases
|
||
for large scale web services.</li>
|
||
</ul>
|
||
<h3 id="sql-query-builders">SQL Query Builders</h3>
|
||
<p><em>Libraries for building and using SQL.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/nullism/bqb">bqb</a> - Lightweight and
|
||
easy to learn query builder.</li>
|
||
<li><a href="https://github.com/arthurkushman/buildsqlx">buildsqlx</a> -
|
||
Go database query builder library for PostgreSQL.</li>
|
||
<li><a href="https://github.com/cristalhq/builq">builq</a> - Easily
|
||
build SQL queries in Go.</li>
|
||
<li><a href="https://github.com/rocketlaunchr/dbq">dbq</a> - Zero
|
||
boilerplate database operations for Go.</li>
|
||
<li><a href="https://github.com/gchaincl/dotsql">Dotsql</a> - Go library
|
||
that helps you keep sql files in one place and use them with ease.</li>
|
||
<li><a href="https://github.com/didi/gendry">gendry</a> - Non-invasive
|
||
SQL builder and powerful data binder.</li>
|
||
<li><a href="https://github.com/xujiajun/godbal">godbal</a> - Database
|
||
Abstraction Layer (dbal) for go. Support SQL builder and get result
|
||
easily.</li>
|
||
<li><a href="https://github.com/doug-martin/goqu">goqu</a> - Idiomatic
|
||
SQL builder and query library.</li>
|
||
<li><a href="https://github.com/twharmon/gosql">gosql</a> - SQL Query
|
||
builder with better null values support.</li>
|
||
<li><a href="https://github.com/motrboat/hotcoal">Hotcoal</a> - Secure
|
||
your handcrafted SQL against injection.</li>
|
||
<li><a href="https://github.com/galeone/igor">igor</a> - Abstraction
|
||
layer for PostgreSQL that supports advanced functionality and uses
|
||
gorm-like syntax.</li>
|
||
<li><a href="https://github.com/go-jet/jet">jet</a> - Framework for
|
||
writing type-safe SQL queries in Go, with ability to easily convert
|
||
database query result into desired arbitrary object structure.</li>
|
||
<li><a href="https://github.com/pupizoid/ormlite">ormlite</a> -
|
||
Lightweight package containing some ORM-like features and helpers for
|
||
sqlite databases.</li>
|
||
<li><a href="https://github.com/go-ozzo/ozzo-dbx">ozzo-dbx</a> -
|
||
Powerful data retrieval methods as well as DB-agnostic query building
|
||
capabilities.</li>
|
||
<li><a href="https://github.com/HnH/qry">qry</a> - Tool that generates
|
||
constants from files with raw SQL queries.</li>
|
||
<li><a href="https://github.com/go-the-way/sg">sg</a> - A SQL Gen for
|
||
generating standard SQLs(supports: CRUD) written in Go.</li>
|
||
<li><a href="https://github.com/bokwoon95/go-structured-query">sq</a> -
|
||
Type-safe SQL builder and struct mapper for Go.</li>
|
||
<li><a href="https://github.com/kyleconroy/sqlc">sqlc</a> - Generate
|
||
type-safe code from SQL.</li>
|
||
<li><a href="https://github.com/leporo/sqlf">sqlf</a> - Fast SQL query
|
||
builder.</li>
|
||
<li><a href="https://github.com/lqs/sqlingo">sqlingo</a> - A lightweight
|
||
DSL to build SQL in Go.</li>
|
||
<li><a href="https://github.com/elgris/sqrl">sqrl</a> - SQL query
|
||
builder, fork of Squirrel with improved performance.</li>
|
||
<li><a href="https://gitlab.com/qosenergy/squalus">Squalus</a> - Thin
|
||
layer over the Go SQL package that makes it easier to perform
|
||
queries.</li>
|
||
<li><a href="https://github.com/Masterminds/squirrel">Squirrel</a> - Go
|
||
library that helps you build SQL queries.</li>
|
||
<li><a href="https://github.com/knq/xo">xo</a> - Generate idiomatic Go
|
||
code for databases based on existing schema definitions or custom
|
||
queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL
|
||
Server.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="database-drivers">Database Drivers</h2>
|
||
<h3 id="interfaces-to-multiple-backends">Interfaces to Multiple
|
||
Backends</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/google/cayley">cayley</a> - Graph
|
||
database with support for multiple backends.</li>
|
||
<li><a href="https://github.com/viant/dsc">dsc</a> - Datastore
|
||
connectivity for SQL, NoSQL, structured files.</li>
|
||
<li><a href="https://github.com/fogfish/dynamo">dynamo</a> - A simple
|
||
key-value abstraction to store algebraic and linked-data data types at
|
||
AWS storage services: AWS DynamoDB and AWS S3.</li>
|
||
<li><a
|
||
href="https://github.com/avito-tech/go-transaction-manager">go-transaction-manager</a>
|
||
- Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, …)
|
||
controls transaction boundaries.</li>
|
||
<li><a href="https://github.com/philippgille/gokv">gokv</a> - Simple
|
||
key-value store abstraction and implementations for Go (Redis, Consul,
|
||
etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL,
|
||
MongoDB, CockroachDB and many more).</li>
|
||
</ul>
|
||
<h3 id="relational-database-drivers">Relational Database Drivers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/apache/calcite-avatica-go">avatica</a> -
|
||
Apache Avatica/Phoenix SQL driver for database/sql.</li>
|
||
<li><a href="https://github.com/viant/bgc">bgc</a> - Datastore
|
||
Connectivity for BigQuery for go.</li>
|
||
<li><a href="https://github.com/nakagami/firebirdsql">firebirdsql</a> -
|
||
Firebird RDBMS SQL driver for Go.</li>
|
||
<li><a href="https://github.com/mattn/go-adodb">go-adodb</a> - Microsoft
|
||
ActiveX Object DataBase driver for go that uses database/sql.</li>
|
||
<li><a href="https://github.com/denisenkom/go-mssqldb">go-mssqldb</a> -
|
||
Microsoft MSSQL driver for Go.</li>
|
||
<li><a href="https://github.com/mattn/go-oci8">go-oci8</a> - Oracle
|
||
driver for go that uses database/sql.</li>
|
||
<li><a
|
||
href="https://github.com/go-sql-driver/mysql">go-sql-driver/mysql</a> -
|
||
MySQL driver for Go.</li>
|
||
<li><a href="https://github.com/mattn/go-sqlite3">go-sqlite3</a> -
|
||
SQLite3 driver for go that uses database/sql.</li>
|
||
<li><a href="https://github.com/godror/godror">godror</a> - Oracle
|
||
driver for Go, using the ODPI-C driver.</li>
|
||
<li><a href="https://github.com/minus5/gofreetds">gofreetds</a> -
|
||
Microsoft MSSQL driver. Go wrapper over <a
|
||
href="https://www.freetds.org">FreeTDS</a>.</li>
|
||
<li><a href="https://github.com/VinGarcia/ksql">KSQL</a> - A Simple and
|
||
Powerful Golang SQL Library</li>
|
||
<li><a href="https://github.com/jackc/pgx">pgx</a> - PostgreSQL driver
|
||
supporting features beyond those exposed by database/sql.</li>
|
||
<li><a href="https://github.com/alexeyco/pig">pig</a> - Simple <a
|
||
href="https://github.com/jackc/pgx">pgx</a> wrapper to execute and <a
|
||
href="https://github.com/georgysavva/scany">scan</a> query results
|
||
easily.</li>
|
||
<li><a href="https://github.com/lib/pq">pq</a> - Pure Go Postgres driver
|
||
for database/sql.</li>
|
||
<li><a href="https://github.com/cvilsmeier/sqinn-go">Sqinn-Go</a> -
|
||
SQLite with pure Go.</li>
|
||
<li><a href="https://github.com/qustavo/sqlhooks">sqlhooks</a> - Attach
|
||
hooks to any database/sql driver.</li>
|
||
<li><a href="https://github.com/surrealdb/surrealdb.go">surrealdb.go</a>
|
||
- SurrealDB Driver for Go.</li>
|
||
<li><a href="https://github.com/ydb-platform/ydb-go-sdk">ydb-go-sdk</a>
|
||
- native and database/sql driver YDB (Yandex Database)</li>
|
||
</ul>
|
||
<h3 id="nosql-database-drivers">NoSQL Database Drivers</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/aerospike/aerospike-client-go">aerospike-client-go</a>
|
||
- Aerospike client in Go language.</li>
|
||
<li><a href="https://github.com/solher/arangolite">arangolite</a> -
|
||
Lightweight golang driver for ArangoDB.</li>
|
||
<li><a href="https://github.com/viant/asc">asc</a> - Datastore
|
||
Connectivity for Aerospike for go.</li>
|
||
<li><a href="https://github.com/couchbase/goforestdb">forestdb</a> - Go
|
||
bindings for ForestDB.</li>
|
||
<li><a href="https://github.com/couchbase/go-couchbase">go-couchbase</a>
|
||
- Couchbase client in Go.</li>
|
||
<li><a href="https://github.com/pilosa/go-pilosa">go-pilosa</a> - Go
|
||
client library for Pilosa.</li>
|
||
<li><a href="https://github.com/nitishm/go-rejson">go-rejson</a> -
|
||
Golang client for redislabs’ ReJSON module using Redigo golang client.
|
||
Store and manipulate structs as JSON objects in redis with ease.</li>
|
||
<li><a href="https://github.com/couchbase/gocb">gocb</a> - Official
|
||
Couchbase Go SDK.</li>
|
||
<li><a href="https://github.com/btnguyen2k/gocosmos">gocosmos</a> - REST
|
||
client and standard <code>database/sql</code> driver for Azure Cosmos
|
||
DB.</li>
|
||
<li><a href="https://gocql.github.io">gocql</a> - Go language driver for
|
||
Apache Cassandra.</li>
|
||
<li><a href="https://github.com/piaohao/godis">godis</a> - redis client
|
||
implement by golang, inspired by jedis.</li>
|
||
<li><a href="https://github.com/defcronyke/godscache">godscache</a> - A
|
||
wrapper for the Google Cloud Platform Go Datastore package that adds
|
||
caching using memcached.</li>
|
||
<li><a href="https://github.com/bradfitz/gomemcache/">gomemcache</a> -
|
||
memcache client library for the Go programming language.</li>
|
||
<li><a
|
||
href="https://github.com/aliexpressru/gomemcached">gomemcached</a> - A
|
||
binary Memcached client for Go with support for sharding using
|
||
consistent hashing, along with SASL.</li>
|
||
<li><a href="https://github.com/dancannon/gorethink">gorethink</a> - Go
|
||
language driver for RethinkDB.</li>
|
||
<li><a href="https://github.com/zegl/goriak">goriak</a> - Go language
|
||
driver for Riak KV.</li>
|
||
<li><a href="https://github.com/go-kivik/kivik">Kivik</a> - Kivik
|
||
provides a common Go and GopherJS client library for CouchDB, PouchDB,
|
||
and similar databases.</li>
|
||
<li><a href="https://github.com/kamva/mgm">mgm</a> - MongoDB model-based
|
||
ODM for Go (based on official MongoDB driver).</li>
|
||
<li><a href="https://github.com/globalsign/mgo">mgo</a> - (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.</li>
|
||
<li><a
|
||
href="https://github.com/mongodb/mongo-go-driver">mongo-go-driver</a> -
|
||
Official MongoDB driver for the Go language.</li>
|
||
<li><a href="https://github.com/cihangir/neo4j">neo4j</a> - Neo4j Rest
|
||
API Bindings for Golang.</li>
|
||
<li><a href="https://github.com/davemeehan/Neo4j-GO">Neo4j-GO</a> -
|
||
Neo4j REST Client in golang.</li>
|
||
<li><a href="https://github.com/jmcvetta/neoism">neoism</a> - Neo4j
|
||
client for Golang.</li>
|
||
<li><a href="https://github.com/qiniu/qmgo">qmgo</a> - The MongoDB
|
||
driver for Go. It‘s based on official MongoDB driver but easier to use
|
||
like Mgo.</li>
|
||
<li><a href="https://github.com/bsm/redeo">redeo</a> - Redis-protocol
|
||
compatible TCP servers/services.</li>
|
||
<li><a href="https://github.com/gomodule/redigo">redigo</a> - Redigo is
|
||
a Go client for the Redis database.</li>
|
||
<li><a href="https://github.com/redis/go-redis">redis</a> - Redis client
|
||
for Golang.</li>
|
||
<li><a href="http://github.com/rueian/rueidis">rueidis</a> - Fast Redis
|
||
RESP3 client with auto pipelining and server-assisted client side
|
||
caching.</li>
|
||
<li><a href="https://github.com/shomali11/xredis">xredis</a> - Typesafe,
|
||
customizable, clean & easy to use Redis client.</li>
|
||
</ul>
|
||
<h3 id="search-and-analytic-databases">Search and Analytic
|
||
Databases</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ClickHouse/clickhouse-go/">clickhouse-go</a> -
|
||
ClickHouse SQL client for Go with a <code>database/sql</code>
|
||
compatibility.</li>
|
||
<li><a href="https://github.com/olivere/elastic">elastic</a> -
|
||
Elasticsearch client for Go.</li>
|
||
<li><a href="https://github.com/cch123/elasticsql">elasticsql</a> -
|
||
Convert sql to elasticsearch dsl in Go.</li>
|
||
<li><a href="https://github.com/mattbaird/elastigo">elastigo</a> -
|
||
Elasticsearch client library.</li>
|
||
<li><a
|
||
href="https://github.com/elastic/go-elasticsearch">go-elasticsearch</a>
|
||
- Official Elasticsearch client for Go.</li>
|
||
<li><a href="https://github.com/OwnLocal/goes">goes</a> - Library to
|
||
interact with Elasticsearch.</li>
|
||
<li><a href="https://github.com/seiflotfy/skizze">skizze</a> -
|
||
probabilistic data-structures service and storage.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="date-and-time">Date and Time</h2>
|
||
<p><em>Libraries for working with dates and times.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/goschtalt/approx">approx</a> - A
|
||
Duration extension supporting parsing/printing durations in days, weeks
|
||
and years.</li>
|
||
<li><a href="https://github.com/golang-module/carbon">carbon</a> - A
|
||
simple, semantic and developer-friendly golang package for
|
||
datetime.</li>
|
||
<li><a href="https://github.com/uniplaces/carbon">carbon</a> - Simple
|
||
Time extension with a lot of util methods, ported from PHP Carbon
|
||
library.</li>
|
||
<li><a href="https://github.com/1set/cronrange">cronrange</a> - Parses
|
||
Cron-style time range expressions, checks if the given time is within
|
||
any ranges.</li>
|
||
<li><a href="https://github.com/rickb777/date">date</a> - Augments Time
|
||
for working with dates, date ranges, time spans, periods, and
|
||
time-of-day.</li>
|
||
<li><a href="https://github.com/araddon/dateparse">dateparse</a> - Parse
|
||
date’s without knowing format in advance.</li>
|
||
<li><a href="https://github.com/hako/durafmt">durafmt</a> - Time
|
||
duration formatting library for Go.</li>
|
||
<li><a href="https://github.com/wlbr/feiertage">feiertage</a> - Set of
|
||
functions to calculate public holidays in Germany, incl. specialization
|
||
on the states of Germany (Bundesländer). Things like Easter, Pentecost,
|
||
Thanksgiving…</li>
|
||
<li><a href="https://github.com/ijt/go-anytime">go-anytime</a> - Parse
|
||
dates/times like “next dec 22nd at 3pm” and ranges like “from today
|
||
until next thursday” without knowing the format in advance.</li>
|
||
<li><a href="https://github.com/deatil/go-datebin">go-datebin</a> - A
|
||
simple datetime parse pkg.</li>
|
||
<li><a
|
||
href="https://github.com/yaa110/go-persian-calendar">go-persian-calendar</a>
|
||
- The implementation of the Persian (Solar Hijri) Calendar in Go
|
||
(golang).</li>
|
||
<li><a
|
||
href="https://github.com/xhit/go-str2duration">go-str2duration</a> -
|
||
Convert string to duration. Support time.Duration returned string and
|
||
more.</li>
|
||
<li><a href="https://github.com/nathan-osman/go-sunrise">go-sunrise</a>
|
||
- Calculate the sunrise and sunset times for a given location.</li>
|
||
<li><a href="https://github.com/stoewer/go-week">go-week</a> - An
|
||
efficient package to work with ISO8601 week dates.</li>
|
||
<li><a href="https://github.com/bykof/gostradamus">gostradamus</a> - A
|
||
Go package for working with dates.</li>
|
||
<li><a href="https://github.com/relvacode/iso8601">iso8601</a> -
|
||
Efficiently parse ISO8601 date-times without regex.</li>
|
||
<li><a href="https://github.com/GuilhermeCaruso/kair">kair</a> - Date
|
||
and Time - Golang Formatting Library.</li>
|
||
<li><a href="https://github.com/jinzhu/now">now</a> - Now is a time
|
||
toolkit for golang.</li>
|
||
<li><a href="https://github.com/kirillDanshin/nulltime">NullTime</a> -
|
||
Nullable <code>time.Time</code>.</li>
|
||
<li><a href="https://github.com/awoodbeck/strftime">strftime</a> -
|
||
C99-compatible strftime formatter.</li>
|
||
<li><a href="https://github.com/SaidinWoT/timespan">timespan</a> - For
|
||
interacting with intervals of time, defined as a start time and a
|
||
duration.</li>
|
||
<li><a href="https://github.com/leekchan/timeutil">timeutil</a> - Useful
|
||
extensions (Timedelta, Strftime, …) to the golang’s time package.</li>
|
||
<li><a href="https://github.com/osteele/tuesday">tuesday</a> -
|
||
Ruby-compatible Strftime function.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="distributed-systems">Distributed Systems</h2>
|
||
<p><em>Packages that help with building Distributed Systems.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/lesismal/arpc">arpc</a> - More effective
|
||
network communication, support two-way-calling, notify, broadcast.</li>
|
||
<li><a href="https://github.com/z5labs/bedrock">bedrock</a> - Provides a
|
||
minimal, modular and composable foundation for quickly developing
|
||
services and more use case specific frameworks in Go.</li>
|
||
<li><a href="https://github.com/svcavallar/celeriac.v1">celeriac</a> -
|
||
Library for adding support for interacting and monitoring Celery
|
||
workers, tasks and events in Go.</li>
|
||
<li><a href="https://github.com/buraksezer/consistent">consistent</a> -
|
||
Consistent hashing with bounded loads.</li>
|
||
<li><a
|
||
href="https://github.com/mbrostami/consistenthash">consistenthash</a> -
|
||
Consistent hashing with configurable replicas.</li>
|
||
<li><a href="https://github.com/anacrolix/dht">dht</a> - BitTorrent
|
||
Kademlia DHT implementation.</li>
|
||
<li><a href="https://github.com/digota/digota">digota</a> - grpc
|
||
ecommerce microservice.</li>
|
||
<li><a href="https://github.com/dotchain/dot/">dot</a> - distributed
|
||
sync using operational transformation/OT.</li>
|
||
<li><a href="https://github.com/edwingeng/doublejump">doublejump</a> - A
|
||
revamped Google’s jump consistent hash.</li>
|
||
<li><a href="https://github.com/lni/dragonboat">dragonboat</a> - A
|
||
feature complete and high performance multi-group Raft library in
|
||
Go.</li>
|
||
<li><a href="https://github.com/dragonflyoss/Dragonfly2">Dragonfly</a> -
|
||
Provide efficient, stable and secure file distribution and image
|
||
acceleration based on p2p technology to be the best practice and
|
||
standard solution in cloud native architectures.</li>
|
||
<li><a href="https://github.com/dgruber/drmaa">drmaa</a> - Job
|
||
submission library for cluster schedulers based on the DRMAA
|
||
standard.</li>
|
||
<li><a href="https://cirello.io/dynamolock">dynamolock</a> -
|
||
DynamoDB-backed distributed locking implementation.</li>
|
||
<li><a href="https://github.com/tylfin/dynatomic">dynatomic</a> - A
|
||
library for using DynamoDB as an atomic counter.</li>
|
||
<li><a href="https://github.com/emitter-io/emitter">emitter-io</a> -
|
||
High performance, distributed, secure and low latency publish-subscribe
|
||
platform built with MQTT, Websockets and love.</li>
|
||
<li><a href="https://github.com/andy2046/failured">failured</a> -
|
||
adaptive accrual failure detector for distributed systems.</li>
|
||
<li><a href="https://github.com/vectaport/flowgraph">flowgraph</a> -
|
||
flow-based programming package.</li>
|
||
<li><a href="https://github.com/chrislusf/gleam">gleam</a> - 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.</li>
|
||
<li><a href="https://github.com/chrislusf/glow">glow</a> - Easy-to-Use
|
||
scalable distributed big data processing, Map-Reduce, DAG execution, all
|
||
in pure Go.</li>
|
||
<li><a href="https://github.com/gmsec/micro">gmsec</a> - A Go
|
||
distributed systems development framework.</li>
|
||
<li><a href="https://github.com/unionj-cloud/go-doudou">go-doudou</a> -
|
||
A gossip protocol and OpenAPI 3.0 spec based decentralized microservice
|
||
framework. Built-in go-doudou cli focusing on low-code and rapid dev can
|
||
power up your productivity.</li>
|
||
<li><a href="https://github.com/InVisionApp/go-health">go-health</a> -
|
||
Library for enabling asynchronous dependency health checks in your
|
||
service.</li>
|
||
<li><a href="https://github.com/dgryski/go-jump">go-jump</a> - Port of
|
||
Google’s “Jump” Consistent Hash function.</li>
|
||
<li><a href="https://github.com/go-kit/kit">go-kit</a> - Microservice
|
||
toolkit with support for service discovery, load balancing, pluggable
|
||
transports, request tracking, etc.</li>
|
||
<li><a href="https://github.com/micro/go-micro">go-micro</a> - A
|
||
distributed systems development framework.</li>
|
||
<li><a
|
||
href="https://github.com/sanketplus/go-mysql-lock">go-mysql-lock</a> -
|
||
MySQL based distributed lock.</li>
|
||
<li><a href="https://github.com/pdupub/go-pdu">go-pdu</a> - A
|
||
decentralized identity-based social network.</li>
|
||
<li><a href="https://github.com/AppsFlyer/go-sundheit">go-sundheit</a> -
|
||
A library built to provide support for defining async service health
|
||
checks for golang services.</li>
|
||
<li><a href="https://github.com/tal-tech/go-zero">go-zero</a> - A web
|
||
and rpc framework. It’s born to ensure the stability of the busy sites
|
||
with resilient design. Builtin goctl greatly improves the development
|
||
productivity.</li>
|
||
<li><a href="https://github.com/valyala/gorpc">gorpc</a> - Simple, fast
|
||
and scalable RPC library for high load.</li>
|
||
<li><a href="https://github.com/grpc/grpc-go">grpc-go</a> - The Go
|
||
language implementation of gRPC. HTTP/2 based RPC.</li>
|
||
<li><a href="https://github.com/hprose/hprose-golang">hprose</a> - Very
|
||
newbility RPC Library, support 25+ languages now.</li>
|
||
<li><a href="https://github.com/osamingo/jsonrpc">jsonrpc</a> - The
|
||
jsonrpc package helps implement of JSON-RPC 2.0.</li>
|
||
<li><a href="https://github.com/ybbus/jsonrpc">jsonrpc</a> - JSON-RPC
|
||
2.0 HTTP client implementation.</li>
|
||
<li><a href="https://github.com/cloudwego/kitex">Kitex</a> - 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.</li>
|
||
<li><a href="https://github.com/go-kratos/kratos">Kratos</a> - A
|
||
modular-designed and easy-to-use microservices framework in Go.</li>
|
||
<li><a href="https://github.com/liftbridge-io/liftbridge">liftbridge</a>
|
||
- Lightweight, fault-tolerant message streams for NATS.</li>
|
||
<li><a href="https://github.com/luraproject/lura">lura</a> - Ultra
|
||
performant API Gateway framework with middlewares.</li>
|
||
<li><a href="https://github.com/micro/micro">micro</a> - A distributed
|
||
systems runtime for the cloud and beyond.</li>
|
||
<li><a href="https://github.com/nats-io/gnatsd">NATS</a> - Lightweight,
|
||
high performance messaging system for microservices, IoT, and cloud
|
||
native systems.</li>
|
||
<li><a href="https://github.com/italolelis/outboxer">outboxer</a> -
|
||
Outboxer is a go library that implements the outbox pattern.</li>
|
||
<li><a href="https://cirello.io/pglock">pglock</a> - PostgreSQL-backed
|
||
distributed locking implementation.</li>
|
||
<li><a href="https://gitlab.com/pjrpc/pjrpc">pjrpc</a> - Golang JSON-RPC
|
||
Server-Client with Protobuf spec.</li>
|
||
<li><a href="https://github.com/hashicorp/raft">raft</a> - Golang
|
||
implementation of the Raft consensus protocol, by HashiCorp.</li>
|
||
<li><a href="https://github.com/etcd-io/raft">raft</a> - Go
|
||
implementation of the Raft consensus protocol, by CoreOS.</li>
|
||
<li><a href="https://github.com/cenkalti/rain">rain</a> - BitTorrent
|
||
client and library.</li>
|
||
<li><a href="https://github.com/bsm/redislock">redis-lock</a> -
|
||
Simplified distributed locking implementation using Redis.</li>
|
||
<li><a href="https://resgate.io/">resgate</a> - Realtime API Gateway for
|
||
building REST, real time, and RPC APIs, where all clients are
|
||
synchronized seamlessly.</li>
|
||
<li><a href="https://github.com/uber/ringpop-go">ringpop-go</a> -
|
||
Scalable, fault-tolerant application-layer sharding for Go
|
||
applications.</li>
|
||
<li><a href="https://github.com/smallnest/rpcx">rpcx</a> - Distributed
|
||
pluggable RPC service framework like alibaba Dubbo.</li>
|
||
<li><a href="https://github.com/jexia/semaphore">Semaphore</a> - A
|
||
straightforward (micro) service orchestrator.</li>
|
||
<li><a href="https://github.com/ursiform/sleuth">sleuth</a> - Library
|
||
for master-less p2p auto-discovery and RPC between HTTP services (using
|
||
<a href="https://github.com/zeromq/libzmq">ZeroMQ</a>).</li>
|
||
<li><a href="https://github.com/zhufuyi/sponge">sponge</a> - A
|
||
distributed development framework that integrates automatic code
|
||
generation, gin and grpc frameworks, base development frameworks.</li>
|
||
<li><a href="https://github.com/tarmac-project/tarmac">Tarmac</a> -
|
||
Framework for writing functions, microservices, or monoliths with
|
||
WebAssembly</li>
|
||
<li><a href="https://github.com/temporalio/sdk-go">Temporal</a> -
|
||
Durable execution system for making code fault-tolerant and simple.</li>
|
||
<li><a href="https://github.com/anacrolix/torrent">torrent</a> -
|
||
BitTorrent client package.</li>
|
||
<li><a href="https://github.com/trpc-group/trpc-go">trpc-go</a> - The Go
|
||
language implementation of tRPC, which is a pluggable, high-performance
|
||
RPC framework.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="dynamic-dns">Dynamic DNS</h2>
|
||
<p><em>Tools for updating dynamic DNS records.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/skibish/ddns">DDNS</a> - Personal DDNS
|
||
client with Digital Ocean Networking DNS as backend.</li>
|
||
<li><a href="https://gitlab.com/alcastle/dyndns">dyndns</a> - 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.</li>
|
||
<li><a href="https://github.com/timothyye/godns">GoDNS</a> - A dynamic
|
||
DNS client tool, supports DNSPod & HE.net, written in Go.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="email">Email</h2>
|
||
<p><em>Libraries and tools that implement email creation and
|
||
sending.</em></p>
|
||
<ul>
|
||
<li><a href="https://blitiri.com.ar/p/chasquid">chasquid</a> - SMTP
|
||
server written in Go.</li>
|
||
<li><a href="https://github.com/aymerick/douceur">douceur</a> - CSS
|
||
inliner for your HTML emails.</li>
|
||
<li><a href="https://github.com/jordan-wright/email">email</a> - A
|
||
robust and flexible email library for Go.</li>
|
||
<li><a
|
||
href="https://github.com/AfterShip/email-verifier">email-verifier</a> -
|
||
A Go library for email verification without sending any emails.</li>
|
||
<li><a href="https://github.com/toorop/go-dkim">go-dkim</a> - DKIM
|
||
library, to sign & verify email.</li>
|
||
<li><a
|
||
href="https://github.com/dimuska139/go-email-normalizer">go-email-normalizer</a>
|
||
- Golang library for providing a canonical representation of email
|
||
address.</li>
|
||
<li><a
|
||
href="https://github.com/go-email-validator/go-email-validator">go-email-validator</a>
|
||
- Modular email validator for syntax, disposable, smtp, etc…
|
||
checking.</li>
|
||
<li><a href="https://github.com/emersion/go-imap">go-imap</a> - IMAP
|
||
library for clients and servers.</li>
|
||
<li><a href="https://github.com/wneessen/go-mail">go-mail</a> - A simple
|
||
Go library for sending mails in Go.</li>
|
||
<li><a href="https://github.com/emersion/go-message">go-message</a> -
|
||
Streaming library for the Internet Message Format and mail
|
||
messages.</li>
|
||
<li><a href="https://github.com/vanng822/go-premailer">go-premailer</a>
|
||
- Inline styling for HTML mail in Go.</li>
|
||
<li><a href="https://github.com/xhit/go-simple-mail">go-simple-mail</a>
|
||
- Very simple package to send emails with SMTP Keep Alive and two
|
||
timeouts: Connect and Send.</li>
|
||
<li><a href="https://github.com/hectane/hectane">Hectane</a> -
|
||
Lightweight SMTP client providing an HTTP API.</li>
|
||
<li><a href="https://github.com/matcornic/hermes">hermes</a> - Golang
|
||
package that generates clean, responsive HTML e-mails.</li>
|
||
<li><a href="https://github.com/foxcpp/maddy">Maddy</a> - All-in-one
|
||
(SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) email server</li>
|
||
<li><a href="https://github.com/mailchain/mailchain">mailchain</a> -
|
||
Send encrypted emails to blockchain addresses written in Go.</li>
|
||
<li><a href="https://github.com/mailgun/mailgun-go">mailgun-go</a> - Go
|
||
library for sending mail with the Mailgun API.</li>
|
||
<li><a href="https://github.com/mailhog/MailHog">MailHog</a> - Email and
|
||
SMTP testing with web and API interface.</li>
|
||
<li><a href="https://github.com/axllent/mailpit">Mailpit</a> - Email and
|
||
SMTP testing tool for developers.</li>
|
||
<li><a href="https://github.com/valord577/mailx">mailx</a> - Mailx is a
|
||
library that makes it easier to send email via SMTP. It is an
|
||
enhancement of the golang standard library <code>net/smtp</code>.</li>
|
||
<li><a href="https://github.com/sendgrid/sendgrid-go">SendGrid</a> -
|
||
SendGrid’s Go library for sending email.</li>
|
||
<li><a href="https://github.com/mailhog/smtp">smtp</a> - SMTP server
|
||
protocol state machine.</li>
|
||
<li><a href="https://github.com/mocktools/go-smtp-mock">smtpmock</a> -
|
||
Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP
|
||
behaviour for your test environment.</li>
|
||
<li><a href="https://github.com/truemail-rb/truemail-go">truemail-go</a>
|
||
- Configurable Golang email validator/verifier. Verify email via Regex,
|
||
DNS, SMTP and even more.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="embeddable-scripting-languages">Embeddable Scripting
|
||
Languages</h2>
|
||
<p><em>Embedding other languages inside your go code.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/mattn/anko">anko</a> - Scriptable
|
||
interpreter written in Go.</li>
|
||
<li><a href="https://github.com/alexeyco/binder">binder</a> - Go to Lua
|
||
binding library, based on <a
|
||
href="https://github.com/yuin/gopher-lua">gopher-lua</a>.</li>
|
||
<li><a href="https://github.com/google/cel-go">cel-go</a> - Fast,
|
||
portable, non-Turing complete expression evaluation with gradual
|
||
typing.</li>
|
||
<li><a href="https://github.com/krotik/ecal">ecal</a> - A simple
|
||
embeddable scripting language which supports concurrent event
|
||
processing.</li>
|
||
<li><a href="https://github.com/antonmedv/expr">expr</a> - Expression
|
||
evaluation engine for Go: fast, non-Turing complete, dynamic typing,
|
||
static typing.</li>
|
||
<li><a href="https://github.com/gentee/gentee">gentee</a> - Embeddable
|
||
scripting programming language.</li>
|
||
<li><a href="https://github.com/jcla1/gisp">gisp</a> - Simple LISP in
|
||
Go.</li>
|
||
<li><a href="https://github.com/olebedev/go-duktape">go-duktape</a> -
|
||
Duktape JavaScript engine bindings for Go.</li>
|
||
<li><a href="https://github.com/Shopify/go-lua">go-lua</a> - Port of the
|
||
Lua 5.2 VM to pure Go.</li>
|
||
<li><a href="https://github.com/deuill/go-php">go-php</a> - PHP bindings
|
||
for Go.</li>
|
||
<li><a href="https://github.com/sbinet/go-python">go-python</a> - naive
|
||
go bindings to the CPython C-API.</li>
|
||
<li><a href="https://github.com/dop251/goja">goja</a> - ECMAScript
|
||
5.1(+) implementation in Go.</li>
|
||
<li><a href="https://github.com/aarzilli/golua">golua</a> - Go bindings
|
||
for Lua C API.</li>
|
||
<li><a href="https://github.com/yuin/gopher-lua">gopher-lua</a> - Lua
|
||
5.1 VM and compiler written in Go.</li>
|
||
<li><a href="https://github.com/PaesslerAG/gval">gval</a> - A highly
|
||
customizable expression language written in Go.</li>
|
||
<li><a href="https://github.com/metacall/core">metacall</a> -
|
||
Cross-platform Polyglot Runtime which supports NodeJS, JavaScript,
|
||
TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more.</li>
|
||
<li><a href="https://github.com/db47h/ngaro">ngaro</a> - Embeddable
|
||
Ngaro VM implementation enabling scripting in Retro.</li>
|
||
<li><a href="https://github.com/ichiban/prolog">prolog</a> - Embeddable
|
||
Prolog.</li>
|
||
<li><a href="https://github.com/ian-kent/purl">purl</a> - Perl 5.18.2
|
||
embedded in Go.</li>
|
||
<li><a href="https://github.com/google/starlark-go">starlark-go</a> - Go
|
||
implementation of Starlark: Python-like language with deterministic
|
||
evaluation and hermetic execution.</li>
|
||
<li><a href="https://github.com/d5/tengo">tengo</a> - Bytecode compiled
|
||
script language for Go.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="error-handling">Error Handling</h2>
|
||
<p><em>Libraries for handling errors.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/emperror/emperror">emperror</a> - Error
|
||
handling tools and best practices for Go libraries and
|
||
applications.</li>
|
||
<li><a href="https://github.com/rotisserie/eris">eris</a> - A better way
|
||
to handle, trace, and log errors in Go. Compatible with the standard
|
||
error library and github.com/pkg/errors.</li>
|
||
<li><a href="https://github.com/snwfdhmp/errlog">errlog</a> - Hackable
|
||
package that determines responsible source code for an error (and some
|
||
other fast-debugging features). Pluggable to any logger in-place.</li>
|
||
<li><a href="https://github.com/emperror/errors">errors</a> - Drop-in
|
||
replacement for the standard library errors package and
|
||
github.com/pkg/errors. Provides various error handling primitives.</li>
|
||
<li><a href="https://github.com/neuronlabs/errors">errors</a> - Simple
|
||
golang error handling with classification primitives.</li>
|
||
<li><a href="https://github.com/PumpkinSeed/errors">errors</a> - The
|
||
most simple error wrapper with awesome performance and minimal memory
|
||
overhead.</li>
|
||
<li><a href="https://gitlab.com/tozd/go/errors">errors</a> - Providing
|
||
errors with a stack trace and optional structured details. Compatible
|
||
with github.com/pkg/errors API but does not use it internally.</li>
|
||
<li><a href="https://github.com/bnkamalesh/errors">errors</a> - 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.</li>
|
||
<li><a href="https://github.com/cockroachdb/errors">errors</a> - Go
|
||
error library with error portability over the network.</li>
|
||
<li><a href="https://github.com/joomcode/errorx">errorx</a> - A feature
|
||
rich error package with stack traces, composition of errors and
|
||
more.</li>
|
||
<li><a href="https://github.com/rbrahul/exception">exception</a> - A
|
||
simple utility package for exception handling with try-catch in
|
||
Golang.</li>
|
||
<li><a href="https://github.com/SonicRoshan/falcon">Falcon</a> - A
|
||
Simple Yet Highly Powerful Package For Error Handling.</li>
|
||
<li><a href="https://github.com/Southclaws/fault">Fault</a> - An
|
||
ergonomic mechanism for wrapping errors in order to facilitate
|
||
structured metadata and context for error values.</li>
|
||
<li><a
|
||
href="https://github.com/hashicorp/go-multierror">go-multierror</a> - Go
|
||
(golang) package for representing a list of errors as a single
|
||
error.</li>
|
||
<li><a href="https://github.com/samber/oops">oops</a> - Error handling
|
||
with context, stack trace and source fragments.</li>
|
||
<li><a href="https://github.com/ztrue/tracerr">tracerr</a> - Golang
|
||
errors with stack trace and source fragments.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="file-handling">File Handling</h2>
|
||
<p><em>Libraries for handling files and file systems.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/spf13/afero">afero</a> - FileSystem
|
||
Abstraction System for Go.</li>
|
||
<li><a href="https://github.com/viant/afs">afs</a> - Abstract File
|
||
Storage (mem, scp, zip, tar, cloud: s3, gs) for Go.</li>
|
||
<li><a href="https://github.com/xis/baraka">baraka</a> - A library to
|
||
process http file uploads easily.</li>
|
||
<li><a href="https://github.com/bigfile/bigfile">bigfile</a> - A file
|
||
transfer system, support to manage files with http api, rpc call and ftp
|
||
client.</li>
|
||
<li><a href="https://github.com/codingsince1985/checksum">checksum</a> -
|
||
Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for
|
||
large files.</li>
|
||
<li><a href="https://github.com/otiai10/copy">copy</a> - Copy directory
|
||
recursively.</li>
|
||
<li><a href="https://github.com/homedepot/flop">flop</a> - File
|
||
operations library which aims to mirror feature parity with <a
|
||
href="https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html">GNU
|
||
cp</a>.</li>
|
||
<li><a href="https://github.com/dundee/gdu">gdu</a> - Disk usage
|
||
analyzer with console interface.</li>
|
||
<li><a href="https://github.com/artonge/go-csv-tag">go-csv-tag</a> -
|
||
Load csv file using tag.</li>
|
||
<li><a
|
||
href="https://github.com/hugocarreira/go-decent-copy">go-decent-copy</a>
|
||
- Copy files for humans.</li>
|
||
<li><a href="https://github.com/barasher/go-exiftool">go-exiftool</a> -
|
||
Go bindings for ExifTool, the well-known library used to extract as much
|
||
metadata as possible (EXIF, IPTC, …) from files (pictures, PDF, office,
|
||
…).</li>
|
||
<li><a href="https://github.com/artonge/go-gtfs">go-gtfs</a> - Load gtfs
|
||
files in go.</li>
|
||
<li><a href="https://github.com/no-src/gofs">gofs</a> - A cross-platform
|
||
real-time file synchronization tool out of the box.</li>
|
||
<li><a href="https://github.com/1set/gut">gut/yos</a> - Simple and
|
||
reliable package for file operations like copy/move/diff/list on files,
|
||
directories and symbolic links.</li>
|
||
<li><a href="https://github.com/dastoori/higgs">higgs</a> - A tiny
|
||
cross-platform Go library to hide/unhide files and directories.</li>
|
||
<li><a href="https://github.com/kdomanski/iso9660">iso9660</a> - A
|
||
package for reading and creating ISO9660 disk images</li>
|
||
<li><a href="https://github.com/rjeczalik/notify">notify</a> - File
|
||
system event notification library with simple API, similar to
|
||
os/signal.</li>
|
||
<li><a href="https://github.com/qmuntal/opc">opc</a> - Load Open
|
||
Packaging Conventions (OPC) files for Go.</li>
|
||
<li><a href="https://github.com/parsyl/parquet">parquet</a> - Read and
|
||
write <a href="https://parquet.apache.org">parquet</a> files.</li>
|
||
<li><a href="https://github.com/jonchun/pathtype">pathtype</a> - Treat
|
||
paths as their own type instead of using strings.</li>
|
||
<li><a href="https://github.com/pdfcpu/pdfcpu">pdfcpu</a> - PDF
|
||
processor.</li>
|
||
<li><a href="https://github.com/dixonwille/skywalker">skywalker</a> -
|
||
Package to allow one to concurrently go through a filesystem with
|
||
ease.</li>
|
||
<li><a href="https://gitlab.com/russoj88/stl">stl</a> - Modules to read
|
||
and write STL (stereolithography) files. Concurrent algorithm for
|
||
reading.</li>
|
||
<li><a href="https://github.com/1set/todotxt">todotxt</a> - Go library
|
||
for Gina Trapani’s <a href="http://todotxt.org/"><em>todo.txt</em></a>
|
||
files, supports parsing and manipulating of task lists in the <a
|
||
href="https://github.com/todotxt/todo.txt"><em>todo.txt</em>
|
||
format</a>.</li>
|
||
<li><a href="https://github.com/C2FO/vfs">vfs</a> - A pluggable,
|
||
extensible, and opinionated set of filesystem functionality for Go
|
||
across a number of filesystem types such as os, S3, and GCS.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="financial">Financial</h2>
|
||
<p><em>Packages for accounting and finance.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/leekchan/accounting">accounting</a> -
|
||
money and currency formatting for golang.</li>
|
||
<li><a href="https://github.com/moov-io/ach">ach</a> - A reader, writer,
|
||
and validator for Automated Clearing House (ACH) files.</li>
|
||
<li><a href="https://github.com/c9s/bbgo">bbgo</a> - A crypto trading
|
||
bot framework written in Go. Including common crypto exchange API,
|
||
standard indicators, back-testing and many built-in strategies.</li>
|
||
<li><a href="https://github.com/bojanz/currency">currency</a> - Handles
|
||
currency amounts, provides currency information and formatting.</li>
|
||
<li><a href="https://github.com/bnkamalesh/currency">currency</a> - High
|
||
performant & accurate currency computation package.</li>
|
||
<li><a href="https://github.com/shopspring/decimal">decimal</a> -
|
||
Arbitrary-precision fixed-point decimal numbers.</li>
|
||
<li><a href="https://github.com/govalues/decimal">decimal</a> -
|
||
Immutable decimal numbers with panic-free arithmetic.</li>
|
||
<li><a href="https://github.com/nikolaydubina/fpdecimal">fpdecimal</a> -
|
||
Fast and precise serialization and arithmetic for small fixed-point
|
||
decimals</li>
|
||
<li><a href="https://github.com/nikolaydubina/fpmoney">fpmoney</a> -
|
||
Fast and simple ISO4217 fixed-point decimal money.</li>
|
||
<li><a href="https://github.com/alpeb/go-finance">go-finance</a> -
|
||
Library of financial functions for time value of money (annuities), cash
|
||
flow, interest rate conversions, bonds and depreciation
|
||
calculations.</li>
|
||
<li><a
|
||
href="https://github.com/pieterclaerhout/go-finance">go-finance</a> -
|
||
Module to fetch exchange rates, check VAT numbers via VIES and check
|
||
IBAN bank account numbers.</li>
|
||
<li><a href="https://github.com/m1/go-finnhub">go-finnhub</a> - 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.</li>
|
||
<li><a href="https://github.com/rhymond/go-money">go-money</a> -
|
||
Implementation of Fowler’s Money pattern.</li>
|
||
<li><a href="https://github.com/matm/go-nowpayments">go-nowpayments</a>
|
||
- Library for the crypto NOWPayments API.</li>
|
||
<li><a href="https://github.com/govalues/money">money</a> - Immutable
|
||
monetary amounts and exchange rates with panic-free arithmetic.</li>
|
||
<li><a href="https://github.com/aclindsa/ofxgo">ofxgo</a> - Query OFX
|
||
servers and/or parse the responses (with example command-line
|
||
client).</li>
|
||
<li><a href="https://github.com/i25959341/orderbook">orderbook</a> -
|
||
Matching Engine for Limit Order Book in Golang.</li>
|
||
<li><a href="https://github.com/jovandeginste/payme">payme</a> - QR code
|
||
generator (ASCII & PNG) for SEPA payments.</li>
|
||
<li><a href="https://github.com/BoltApp/sleet">sleet</a> - One unified
|
||
interface for multiple Payment Service Providers (PsP) to process online
|
||
payment.</li>
|
||
<li><a href="https://code.pfad.fr/swift/">swift</a> - Offline validity
|
||
check of IBAN (International Bank Account Number) and retrieval of BIC
|
||
(for some countries).</li>
|
||
<li><a href="https://github.com/sdcoffey/techan">techan</a> - Technical
|
||
analysis library with advanced market analysis and trading
|
||
strategies.</li>
|
||
<li><a href="https://github.com/achannarasappa/ticker">ticker</a> -
|
||
Terminal stock watcher and stock position tracker.</li>
|
||
<li><a href="https://github.com/claygod/transaction">transaction</a> -
|
||
Embedded transactional database of accounts, running in multithreaded
|
||
mode.</li>
|
||
<li><a href="https://github.com/dannyvankooten/vat">vat</a> - VAT number
|
||
validation & EU VAT rates.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="forms">Forms</h2>
|
||
<p><em>Libraries for working with forms.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/robfig/bind">bind</a> - Bind form data
|
||
to any Go values.</li>
|
||
<li><a href="https://github.com/mholt/binding">binding</a> - Binds form
|
||
and JSON data from net/http Request to struct.</li>
|
||
<li><a href="https://github.com/cinar/checker">checker</a> - Checker
|
||
helps validating user input through rules defined in struct tags or
|
||
directly through functions.</li>
|
||
<li><a href="https://github.com/leebenson/conform">conform</a> - Keeps
|
||
user input in check. Trims, sanitizes & scrubs data based on struct
|
||
tags.</li>
|
||
<li><a href="https://github.com/go-playground/form">form</a> - Decodes
|
||
url.Values into Go value(s) and Encodes Go value(s) into url.Values.
|
||
Dual Array and Full map support.</li>
|
||
<li><a href="https://github.com/monoculum/formam">formam</a> - decode
|
||
form’s values into a struct.</li>
|
||
<li><a href="https://github.com/albrow/forms">forms</a> -
|
||
Framework-agnostic library for parsing and validating form/JSON data
|
||
which supports multipart forms and files.</li>
|
||
<li><a href="https://github.com/bdjimmy/gbind">gbind</a> - Bind data to
|
||
any Go value. Can use built-in and custom expression binding
|
||
capabilities; supports data validation</li>
|
||
<li><a href="https://github.com/gorilla/csrf">gorilla/csrf</a> - CSRF
|
||
protection for Go web applications & services.</li>
|
||
<li><a href="https://github.com/ggicci/httpin">httpin</a> - Decode an
|
||
HTTP request into a custom struct, including querystring, forms, HTTP
|
||
headers, etc.</li>
|
||
<li><a href="https://github.com/justinas/nosurf">nosurf</a> - CSRF
|
||
protection middleware for Go.</li>
|
||
<li><a href="https://github.com/sonh/qs">qs</a> - Go module for encoding
|
||
structs into URL query parameters.</li>
|
||
<li><a href="https://github.com/tomwright/queryparam">queryparam</a> -
|
||
Decode <code>url.Values</code> into usable struct values of standard or
|
||
custom types.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="functional">Functional</h2>
|
||
<p><em>Packages to support functional programming in Go.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/repeale/fp-go">fp-go</a> - Collection of
|
||
Functional Programming helpers powered by Golang 1.18+ generics.</li>
|
||
<li><a href="https://github.com/TeaEntityLab/fpGo">fpGo</a> - Monad,
|
||
Functional Programming features for Golang.</li>
|
||
<li><a href="https://github.com/seborama/fuego">fuego</a> - Functional
|
||
Experiment in Go.</li>
|
||
<li><a
|
||
href="https://github.com/BooleanCat/go-functional">go-functional</a> -
|
||
Functional programming in Go using generics</li>
|
||
<li><a
|
||
href="https://github.com/tobyhede/go-underscore">go-underscore</a> -
|
||
Useful collection of helpfully functional Go collection utilities.</li>
|
||
<li><a href="https://github.com/rbrahul/gofp">gofp</a> - A lodash like
|
||
powerful utility library for Golang.</li>
|
||
<li><a href="https://github.com/samber/mo">mo</a> - Monads and popular
|
||
FP abstractions, based on Go 1.18+ Generics (Option, Result,
|
||
Either…).</li>
|
||
<li><a href="https://github.com/rjNemo/underscore">underscore</a> -
|
||
Functional programming helpers for Go 1.18 and beyond.</li>
|
||
<li><a href="https://github.com/phelmkamp/valor">valor</a> - Generic
|
||
option and result types that optionally contain a value.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="game-development">Game Development</h2>
|
||
<p><em>Awesome game development libraries.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/azul3d/engine">Azul3D</a> - 3D game
|
||
engine written in Go.</li>
|
||
<li><a href="https://github.com/hajimehoshi/ebiten">Ebitengine</a> -
|
||
dead simple 2D game engine in Go.</li>
|
||
<li><a href="https://github.com/EngoEngine/engo">engo</a> - Engo is an
|
||
open-source 2D game engine written in Go. It follows the
|
||
Entity-Component-System paradigm.</li>
|
||
<li><a href="https://github.com/s0rg/fantasyname">fantasyname</a> -
|
||
Fantasy names generator.</li>
|
||
<li><a href="https://github.com/g3n/engine">g3n</a> - Go 3D Game
|
||
Engine.</li>
|
||
<li><a href="https://github.com/beefsack/go-astar">go-astar</a> - Go
|
||
implementation of the A* path finding algorithm.</li>
|
||
<li><a href="https://github.com/veandco/go-sdl2">go-sdl2</a> - Go
|
||
bindings for the <a href="https://www.libsdl.org/">Simple DirectMedia
|
||
Layer</a>.</li>
|
||
<li><a href="https://github.com/ungerik/go3d">go3d</a> - Performance
|
||
oriented 2D/3D math package for Go.</li>
|
||
<li><a href="https://github.com/xtaci/gonet">gonet</a> - Game server
|
||
skeleton implemented with golang.</li>
|
||
<li><a href="https://github.com/xiaonanln/goworld">goworld</a> -
|
||
Scalable game server engine, featuring space-entity framework and
|
||
hot-swapping.</li>
|
||
<li><a href="https://github.com/harfang3d/harfang3d">Harfang3D</a> - 3D
|
||
engine for the Go language, works on Windows and Linux (<a
|
||
href="https://github.com/harfang3d/harfang-go">Harfang on
|
||
Go.dev</a>).</li>
|
||
<li><a href="https://github.com/name5566/leaf">Leaf</a> - Lightweight
|
||
game server framework.</li>
|
||
<li><a href="https://github.com/lonng/nano">nano</a> - Lightweight,
|
||
facility, high performance golang based game server framework.</li>
|
||
<li><a href="https://github.com/oakmound/oak">Oak</a> - Pure Go game
|
||
engine.</li>
|
||
<li><a href="https://github.com/topfreegames/pitaya">Pitaya</a> -
|
||
Scalable game server framework with clustering support and client
|
||
libraries for iOS, Android, Unity and others through the C SDK.</li>
|
||
<li><a href="https://github.com/faiface/pixel">Pixel</a> - Hand-crafted
|
||
2D game library in Go.</li>
|
||
<li><a href="https://github.com/gonutz/prototype">prototype</a> -
|
||
Cross-platform (Windows/Linux/Mac) library for creating desktop games
|
||
using a minimal API.</li>
|
||
<li><a href="https://github.com/gen2brain/raylib-go">raylib-go</a> - Go
|
||
bindings for <a href="https://www.raylib.com/">raylib</a>, a simple and
|
||
easy-to-use library to learn videogames programming.</li>
|
||
<li><a href="https://github.com/JoelOtter/termloop">termloop</a> -
|
||
Terminal-based game engine for Go, built on top of Termbox.</li>
|
||
<li><a href="https://github.com/kelindar/tile">tile</a> - Data-oriented
|
||
and cache-friendly 2D Grid library (TileMap), includes pathfinding,
|
||
observers and import/export.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="generators">Generators</h2>
|
||
<p><em>Tools that generate Go code.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/reedom/convergen">convergen</a> -
|
||
Feature rich type-to-type copy code generator.</li>
|
||
<li><a href="https://github.com/switchupcb/copygen">copygen</a> -
|
||
Generate type-to-type and type-based code without reflection.</li>
|
||
<li><a href="https://github.com/senselogic/GENERIS">generis</a> - Code
|
||
generation tool providing generics, free-form macros, conditional
|
||
compilation and HTML templating.</li>
|
||
<li><a href="https://github.com/abice/go-enum">go-enum</a> - Code
|
||
generation for enums from code comments.</li>
|
||
<li><a href="https://github.com/ahmetalpbalkan/go-linq">go-linq</a> -
|
||
.NET LINQ-like query methods for Go.</li>
|
||
<li><a href="https://github.com/awalterschulze/goderive">goderive</a> -
|
||
Derives functions from input types.</li>
|
||
<li><a href="https://github.com/wzshiming/gotype">gotype</a> - Golang
|
||
source code parsing, usage like reflect package.</li>
|
||
<li><a href="https://github.com/jmattheis/goverter">goverter</a> -
|
||
Generate converters by defining an interface.</li>
|
||
<li><a href="https://github.com/hexdigest/gowrap">GoWrap</a> - Generate
|
||
decorators for Go interfaces using simple templates.</li>
|
||
<li><a href="https://github.com/rjeczalik/interfaces">interfaces</a> -
|
||
Command line tool for generating interface definitions.</li>
|
||
<li><a href="https://github.com/dave/jennifer">jennifer</a> - Generate
|
||
arbitrary Go code without templates.</li>
|
||
<li><a href="https://github.com/deepmap/oapi-codegen">oapi-codegen</a> -
|
||
This package contains a set of utilities for generating Go boilerplate
|
||
code for services based on OpenAPI 3.0 API definitions.</li>
|
||
<li><a href="https://github.com/xiaoxin01/typeregistry">typeregistry</a>
|
||
- A library to create type dynamically.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="geographic">Geographic</h2>
|
||
<p><em>Geographic tools and servers</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/hishamkaram/geoserver">geoserver</a> -
|
||
geoserver Is a Go Package For Manipulating a GeoServer Instance via the
|
||
GeoServer REST API.</li>
|
||
<li><a href="https://github.com/hishamkaram/gismanager">gismanager</a> -
|
||
Publish Your GIS Data(Vector Data) to PostGIS and Geoserver.</li>
|
||
<li><a href="https://github.com/airbusgeo/godal">godal</a> - Go wrapper
|
||
for GDAL.</li>
|
||
<li><a href="https://github.com/uber/h3-go">H3</a> - Go bindings for H3,
|
||
a hierarchical hexagonal geospatial indexing system.</li>
|
||
<li><a href="https://github.com/mmadfox/go-geojson2h3">H3 GeoJSON</a> -
|
||
Conversion utilities between H3 indexes and GeoJSON.</li>
|
||
<li><a href="https://github.com/mmadfox/go-h3geo-dist">H3GeoDist</a> -
|
||
Distribution of Uber H3geo cells by virtual nodes.</li>
|
||
<li><a href="https://github.com/consbio/mbtileserver">mbtileserver</a> -
|
||
A simple Go-based server for map tiles stored in mbtiles format.</li>
|
||
<li><a href="https://github.com/paulmach/osm">osm</a> - Library for
|
||
reading, writing and working with OpenStreetMap data and APIs.</li>
|
||
<li><a href="https://github.com/maguro/pbf">pbf</a> - OpenStreetMap PBF
|
||
golang encoder/decoder.</li>
|
||
<li><a href="https://github.com/pantrif/s2-geojson">S2 geojson</a> -
|
||
Convert geojson to s2 cells & demonstrating some S2 geometry
|
||
features on map.</li>
|
||
<li><a href="https://github.com/golang/geo">S2 geometry</a> - S2
|
||
geometry library in Go.</li>
|
||
<li><a
|
||
href="https://github.com/peterstace/simplefeatures">simplefeatures</a> -
|
||
simplesfeatures is a 2D geometry library that provides Go types that
|
||
model geometries, as well as algorithms that operate on them.</li>
|
||
<li><a href="https://github.com/tidwall/tile38">Tile38</a> - Geolocation
|
||
DB with spatial index and realtime geofencing.</li>
|
||
<li><a
|
||
href="https://github.com/jorelosorio/web-mercator-projection">Web-Mercator-Projection</a>
|
||
A project to easily use and convert LonLat, Point and Tile to display
|
||
info, markers, etc, in a map using the Web Mercator Projection.</li>
|
||
<li><a href="https://github.com/wroge/wgs84">WGS84</a> - Library for
|
||
Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93,
|
||
Web Mercator, UTM).</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="go-compilers">Go Compilers</h2>
|
||
<p><em>Tools for compiling Go to other languages.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/goplus/c2go">c2go</a> - Convert C code
|
||
to Go code.</li>
|
||
<li><a href="https://github.com/Konstantin8105/c4go">c4go</a> -
|
||
Transpile C code to Go code.</li>
|
||
<li><a href="https://github.com/andygeiss/esp32-transpiler">esp32</a> -
|
||
Transpile Go into Arduino code.</li>
|
||
<li><a href="https://github.com/Konstantin8105/f4go">f4go</a> -
|
||
Transpile FORTRAN 77 code to Go code.</li>
|
||
<li><a href="https://github.com/gopherjs/gopherjs">gopherjs</a> -
|
||
Compiler from Go to JavaScript.</li>
|
||
<li><a href="https://github.com/tardisgo/tardisgo">tardisgo</a> - Golang
|
||
to Haxe to CPP/CSharp/Java/JavaScript transpiler.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="goroutines">Goroutines</h2>
|
||
<p><em>Tools for managing and working with Goroutines.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/panjf2000/ants">ants</a> - A
|
||
high-performance and low-cost goroutine pool in Go.</li>
|
||
<li><a href="https://github.com/borderstech/artifex">artifex</a> -
|
||
Simple in-memory job queue for Golang using worker-based
|
||
dispatching.</li>
|
||
<li><a href="https://github.com/reugn/async">async</a> - An alternative
|
||
sync library for Go (Future, Promise, Locks).</li>
|
||
<li><a href="https://github.com/studiosol/async">async</a> - A safe way
|
||
to execute functions asynchronously, recovering them in case of
|
||
panic.</li>
|
||
<li><a href="https://github.com/lab210-dev/async-job">async-job</a> -
|
||
AsyncJob is an asynchronous queue job manager with light code, clear and
|
||
speed.</li>
|
||
<li><a href="https://github.com/kamilsk/breaker">breaker</a> - Flexible
|
||
mechanism to make execution flow interruptible.</li>
|
||
<li><a href="https://github.com/ddelizia/channelify">channelify</a> -
|
||
Transform your function to return channels for easy and powerful
|
||
parallel processing.</li>
|
||
<li><a href="https://github.com/sourcegraph/conc">conc</a> -
|
||
<code>conc</code> is your toolbelt for structured concurrency in go,
|
||
making common tasks easier and safer.</li>
|
||
<li><a
|
||
href="https://github.com/vivek-ng/concurrency-limiter">concurrency-limiter</a>
|
||
- Concurrency limiter with support for timeouts , dynamic priority and
|
||
context cancellation of goroutines.</li>
|
||
<li><a href="https://github.com/ITcathyh/conexec">conexec</a> - 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.</li>
|
||
<li><a
|
||
href="https://github.com/marusama/cyclicbarrier">cyclicbarrier</a> -
|
||
CyclicBarrier for golang.</li>
|
||
<li><a href="https://github.com/hexdigest/execpool">execpool</a> - 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.</li>
|
||
<li><a href="https://github.com/carlmjohnson/flowmatic">flowmatic</a> -
|
||
Structured concurrency made easy.</li>
|
||
<li><a
|
||
href="https://github.com/nar10z/go-accumulator">go-accumulator</a> -
|
||
Solution for accumulation of events and their subsequent
|
||
processing.</li>
|
||
<li><a href="https://github.com/vladopajic/go-actor">go-actor</a> - A
|
||
tiny library for writing concurrent programs using actor model.</li>
|
||
<li><a href="https://github.com/workanator/go-floc">go-floc</a> -
|
||
Orchestrate goroutines with ease.</li>
|
||
<li><a href="https://github.com/kamildrazkiewicz/go-flow">go-flow</a> -
|
||
Control goroutines execution order.</li>
|
||
<li><a
|
||
href="https://github.com/nikhilsaraf/go-tools">go-tools/multithreading</a>
|
||
- Manage a pool of goroutines using this lightweight library with a
|
||
simple API.</li>
|
||
<li><a href="https://github.com/subchen/go-trylock">go-trylock</a> -
|
||
TryLock support on read-write lock for Golang.</li>
|
||
<li><a
|
||
href="https://github.com/pieterclaerhout/go-waitgroup">go-waitgroup</a>
|
||
- Like <code>sync.WaitGroup</code> with error handling and concurrency
|
||
control.</li>
|
||
<li><a
|
||
href="https://github.com/zenthangplus/go-workerpool">go-workerpool</a> -
|
||
Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go
|
||
Routines.</li>
|
||
<li><a href="https://github.com/catmullet/go-workers">go-workers</a> -
|
||
Easily and safely run workers for large data processing pipelines.</li>
|
||
<li><a href="https://github.com/zenthangplus/goccm">goccm</a> - Go
|
||
Concurrency Manager package limits the number of goroutines that allowed
|
||
to run concurrently.</li>
|
||
<li><a href="https://github.com/loveleshsharma/gohive">gohive</a> - A
|
||
highly performant and easy to use Goroutine pool for Go.</li>
|
||
<li><a href="https://github.com/vardius/gollback">gollback</a> -
|
||
asynchronous simple function utilities, for managing execution of
|
||
closures and callbacks.</li>
|
||
<li><a href="https://github.com/hamed-yousefi/gowl">gowl</a> - Gowl is a
|
||
process management and process monitoring tool at once. An infinite
|
||
worker pool gives you the ability to control the pool and processes and
|
||
monitor their status.</li>
|
||
<li><a href="https://github.com/benmanns/goworker">goworker</a> -
|
||
goworker is a Go-based background worker.</li>
|
||
<li><a href="https://github.com/xxjwxc/gowp">gowp</a> - gowp is
|
||
concurrency limiting goroutine pool.</li>
|
||
<li><a href="https://github.com/Sherifabdlnaby/gpool">gpool</a> -
|
||
manages a resizeable pool of context-aware goroutines to bound
|
||
concurrency.</li>
|
||
<li><a href="https://github.com/ivpusic/grpool">grpool</a> - Lightweight
|
||
Goroutine pool.</li>
|
||
<li><a href="https://github.com/duanckham/hands">hands</a> - A process
|
||
controller used to control the execution and return strategies of
|
||
multiple goroutines.</li>
|
||
<li><a href="https://github.com/AaronJan/Hunch">Hunch</a> - Hunch
|
||
provides functions like: <code>All</code>, <code>First</code>,
|
||
<code>Retry</code>, <code>Waterfall</code> etc., that makes asynchronous
|
||
flow control more intuitive.</li>
|
||
<li><a href="https://github.com/dirkaholic/kyoo">kyoo</a> - Provides an
|
||
unlimited job queue and concurrent worker pools.</li>
|
||
<li><a
|
||
href="https://github.com/neilotoole/errgroup">neilotoole/errgroup</a> -
|
||
Drop-in alternative to <code>sync/errgroup</code>, limited to a pool of
|
||
N worker goroutines.</li>
|
||
<li><a href="https://github.com/arunsworld/nursery">nursery</a> -
|
||
Structured concurrency in Go.</li>
|
||
<li><a href="https://pkg.go.dev/cirello.io/oversight">oversight</a> -
|
||
Oversight is a complete implementation of the Erlang supervision
|
||
trees.</li>
|
||
<li><a href="https://github.com/rafaeljesus/parallel-fn">parallel-fn</a>
|
||
- Run functions in parallel.</li>
|
||
<li><a href="https://github.com/alitto/pond">pond</a> - Minimalistic and
|
||
High-performance goroutine worker pool written in Go.</li>
|
||
<li><a href="https://github.com/go-playground/pool">pool</a> - Limited
|
||
consumer goroutine or unlimited goroutine pool for easier goroutine
|
||
handling and cancellation.</li>
|
||
<li><a href="https://github.com/AnikHasibul/queue">queue</a> - Gives you
|
||
a <code>sync.WaitGroup</code> like queue group accessibility. Helps you
|
||
to throttle and limit goroutines, wait for the end of the all goroutines
|
||
and much more.</li>
|
||
<li><a href="https://github.com/timandy/routine">routine</a> -
|
||
<code>routine</code> is a <code>ThreadLocal</code> for go library. It
|
||
encapsulates and provides some easy-to-use, non-competitive,
|
||
high-performance <code>goroutine</code> context access interfaces, which
|
||
can help you access coroutine context information more gracefully.</li>
|
||
<li><a href="https://github.com/x-mod/routine">routine</a> - go routine
|
||
control with context, support: Main, Go, Pool and some useful
|
||
Executors.</li>
|
||
<li><a href="https://github.com/kamilsk/semaphore">semaphore</a> -
|
||
Semaphore pattern implementation with timeout of lock/unlock operations
|
||
based on channel and context.</li>
|
||
<li><a href="https://github.com/marusama/semaphore">semaphore</a> - Fast
|
||
resizable semaphore implementation based on CAS (faster than
|
||
channel-based semaphore implementations).</li>
|
||
<li><a href="https://github.com/ssgreg/stl">stl</a> - Software
|
||
transactional locks based on Software Transactional Memory (STM)
|
||
concurrency control mechanism.</li>
|
||
<li><a href="https://github.com/shettyh/threadpool">threadpool</a> -
|
||
Golang threadpool implementation.</li>
|
||
<li><a href="https://github.com/Jeffail/tunny">tunny</a> - Goroutine
|
||
pool for golang.</li>
|
||
<li><a href="https://github.com/vardius/worker-pool">worker-pool</a> -
|
||
goworker is a Go simple async worker pool.</li>
|
||
<li><a href="https://github.com/gammazero/workerpool">workerpool</a> -
|
||
Goroutine pool that limits the concurrency of task execution, not the
|
||
number of tasks queued.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="gui">GUI</h2>
|
||
<p><em>Libraries for building GUI Applications.</em></p>
|
||
<p><em>Toolkits</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/murlokswarm/app">app</a> - Package to
|
||
create apps with GO, HTML and CSS. Supports: MacOS, Windows in
|
||
progress.</li>
|
||
<li><a href="https://github.com/energye/energy">energy</a> -
|
||
Cross-platform based on LCL(Native System UI Control Library) and
|
||
CEF(Chromium Embedded Framework) (Windows/ macOS / Linux)</li>
|
||
<li><a href="https://github.com/fyne-io/fyne">fyne</a> - Cross platform
|
||
native GUIs designed for Go based on Material Design. Supports: Linux,
|
||
macOS, Windows, BSD, iOS and Android.</li>
|
||
<li><a href="https://gioui.org">gio</a> - 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.</li>
|
||
<li><a href="https://mattn.github.io/go-gtk/">go-gtk</a> - Go bindings
|
||
for GTK.</li>
|
||
<li><a href="https://github.com/sciter-sdk/go-sciter">go-sciter</a> - Go
|
||
bindings for Sciter: the Embeddable HTML/CSS/script engine for modern
|
||
desktop UI development. Cross platform.</li>
|
||
<li><a href="https://bitbucket.org/rj/goey/src/master/">Goey</a> - Cross
|
||
platform UI toolkit aggregator for Windows / Linux / Mac. GTK, Cocoa,
|
||
Windows API</li>
|
||
<li><a href="https://github.com/goradd/html5tag">goradd/html5tag</a> -
|
||
Library for outputting HTML5 tags.</li>
|
||
<li><a href="https://github.com/gotk3/gotk3">gotk3</a> - Go bindings for
|
||
GTK3.</li>
|
||
<li><a href="https://github.com/dtylman/gowd">gowd</a> - Rapid and
|
||
simple desktop UI development with GO, HTML, CSS and NW.js. Cross
|
||
platform.</li>
|
||
<li><a href="https://github.com/therecipe/qt">qt</a> - Qt binding for Go
|
||
(support for Windows / macOS / Linux / Android / iOS / Sailfish OS /
|
||
Raspberry Pi).</li>
|
||
<li><a href="https://github.com/andlabs/ui">ui</a> - Platform-native GUI
|
||
library for Go. Cross platform.</li>
|
||
<li><a href="https://github.com/richardwilkes/unison">unison</a> - A
|
||
unified graphical user experience toolkit for Go desktop applications.
|
||
macOS, Windows, and Linux are supported.</li>
|
||
<li><a href="https://wails.io">Wails</a> - Mac, Windows, Linux desktop
|
||
apps with HTML UI using built-in OS HTML renderer.</li>
|
||
<li><a href="https://github.com/lxn/walk">walk</a> - Windows application
|
||
library kit for Go.</li>
|
||
<li><a href="https://github.com/zserge/webview">webview</a> -
|
||
Cross-platform webview window with simple two-way JavaScript bindings
|
||
(Windows / macOS / Linux).</li>
|
||
</ul>
|
||
<p><em>Interaction</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/gopherlibs/appindicator">AppIndicator
|
||
Go</a> - Go bindings for libappindicator3 C library.</li>
|
||
<li><a
|
||
href="https://github.com/deckarep/gosx-notifier">gosx-notifier</a> - OSX
|
||
Desktop Notifications library for Go.</li>
|
||
<li><a
|
||
href="https://github.com/prashantgupta24/activity-tracker">mac-activity-tracker</a>
|
||
- OSX library to notify about any (pluggable) activity on your
|
||
machine.</li>
|
||
<li><a
|
||
href="https://github.com/prashantgupta24/mac-sleep-notifier">mac-sleep-notifier</a>
|
||
- OSX Sleep/Wake notifications in golang.</li>
|
||
<li><a href="https://github.com/go-vgo/robotgo">robotgo</a> - Go Native
|
||
cross-platform GUI system automation. Control the mouse, keyboard and
|
||
other.</li>
|
||
<li><a href="https://github.com/getlantern/systray">systray</a> - Cross
|
||
platform Go library to place an icon and menu in the notification
|
||
area.</li>
|
||
<li><a href="https://github.com/shurcooL/trayhost">trayhost</a> -
|
||
Cross-platform Go library to place an icon in the host operating
|
||
system’s taskbar.</li>
|
||
<li><a href="https://github.com/ncruces/zenity">zenity</a> -
|
||
Cross-platform Go library and CLI to create simple dialogs that interact
|
||
graphically with the user.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="hardware">Hardware</h2>
|
||
<p><em>Libraries, tools, and tutorials for interacting with
|
||
hardware.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/arduino/arduino-cli">arduino-cli</a> -
|
||
Official Arduino CLI and library. Can run standalone, or be incorporated
|
||
into larger Go projects.</li>
|
||
<li><a href="https://github.com/ziutek/emgo">emgo</a> - Go-like language
|
||
for programming embedded systems (e.g. STM32 MCU).</li>
|
||
<li><a href="https://github.com/jaypipes/ghw">ghw</a> - Golang hardware
|
||
discovery/inspection library.</li>
|
||
<li><a href="https://github.com/hypebeast/go-osc">go-osc</a> - Open
|
||
Sound Control (OSC) bindings for Go.</li>
|
||
<li><a href="https://github.com/stianeikeland/go-rpio">go-rpio</a> -
|
||
GPIO for Go, doesn’t require cgo.</li>
|
||
<li><a href="https://github.com/aler9/goroslib">goroslib</a> - Robot
|
||
Operating System (ROS) library for Go.</li>
|
||
<li><a href="https://github.com/0xcafed00d/joystick">joystick</a> - a
|
||
polled API to read the state of an attached joystick.</li>
|
||
<li><a href="https://github.com/zcalusic/sysinfo">sysinfo</a> - A pure
|
||
Go library providing Linux OS / kernel / hardware system
|
||
information.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="images">Images</h2>
|
||
<p><em>Libraries for manipulating images.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/anthonynsimon/bild">bild</a> -
|
||
Collection of image processing algorithms in pure Go.</li>
|
||
<li><a href="https://github.com/h2non/bimg">bimg</a> - Small package for
|
||
fast and efficient image processing using libvips.</li>
|
||
<li><a href="https://github.com/aofei/cameron">cameron</a> - An avatar
|
||
generator for Go.</li>
|
||
<li><a href="https://github.com/tdewolff/canvas">canvas</a> - Vector
|
||
graphics to PDF, SVG or rasterized image.</li>
|
||
<li><a
|
||
href="https://github.com/marekm4/color-extractor">color-extractor</a> -
|
||
Dominant color extractor with no external dependencies.</li>
|
||
<li><a href="https://github.com/gojek/darkroom">darkroom</a> - An image
|
||
proxy with changeable storage backends and image processing engines with
|
||
focus on speed and resiliency.</li>
|
||
<li><a href="https://github.com/lucasepe/draft">draft</a> - Generate
|
||
High Level Microservice Architecture diagrams for GraphViz using simple
|
||
YAML syntax.</li>
|
||
<li><a href="https://github.com/pravj/geopattern">geopattern</a> -
|
||
Create beautiful generative image patterns from a string.</li>
|
||
<li><a href="https://github.com/fogleman/gg">gg</a> - 2D rendering in
|
||
pure Go.</li>
|
||
<li><a href="https://github.com/disintegration/gift">gift</a> - Package
|
||
of image processing filters.</li>
|
||
<li><a href="https://github.com/qmuntal/gltf">gltf</a> - Efficient and
|
||
robust glTF 2.0 reader, writer and validator.</li>
|
||
<li><a href="https://github.com/ungerik/go-cairo">go-cairo</a> - Go
|
||
binding for the cairo graphics library.</li>
|
||
<li><a href="https://github.com/bolknote/go-gd">go-gd</a> - Go binding
|
||
for GD library.</li>
|
||
<li><a href="https://github.com/koyachi/go-nude">go-nude</a> - Nudity
|
||
detection with Go.</li>
|
||
<li><a href="https://github.com/jyotiska/go-webcolors">go-webcolors</a>
|
||
- Port of webcolors library from Python to Go.</li>
|
||
<li><a href="https://github.com/kolesa-team/go-webp">go-webp</a> -
|
||
Library for encode and decode webp pictures, using libwebp.</li>
|
||
<li><a href="https://github.com/hybridgroup/gocv">gocv</a> - Go package
|
||
for computer vision using OpenCV 3.3+.</li>
|
||
<li><a href="https://github.com/corona10/goimagehash">goimagehash</a> -
|
||
Go Perceptual image hashing package.</li>
|
||
<li><a href="https://github.com/corona10/goimghdr">goimghdr</a> - The
|
||
imghdr module determines the type of image contained in a file for
|
||
Go.</li>
|
||
<li><a href="https://github.com/o1egl/govatar">govatar</a> - Library and
|
||
CMD tool for generating funny avatars.</li>
|
||
<li><a href="https://github.com/davidbyttow/govips">govips</a> - A
|
||
lightning fast image processing and resizing library for Go.</li>
|
||
<li><a href="https://github.com/sensepost/gowitness">gowitness</a> -
|
||
Screenshoting webpages using go and headless chrome on command
|
||
line.</li>
|
||
<li><a href="https://github.com/shomali11/gridder">gridder</a> - A Grid
|
||
based 2D Graphics library.</li>
|
||
<li><a href="https://github.com/qeesung/image2ascii">image2ascii</a> -
|
||
Convert image to ASCII.</li>
|
||
<li><a href="https://github.com/gographics/imagick">imagick</a> - Go
|
||
binding to ImageMagick’s MagickWand C API.</li>
|
||
<li><a href="https://github.com/h2non/imaginary">imaginary</a> - Fast
|
||
and simple HTTP microservice for image resizing.</li>
|
||
<li><a href="https://github.com/disintegration/imaging">imaging</a> -
|
||
Simple Go image processing package.</li>
|
||
<li><a href="https://github.com/hawx/img">img</a> - Selection of image
|
||
manipulation tools.</li>
|
||
<li><a href="https://github.com/fogleman/ln">ln</a> - 3D line art
|
||
rendering in Go.</li>
|
||
<li><a href="https://github.com/noelyahan/mergi">mergi</a> - Tool &
|
||
Go library for image manipulation (Merge, Crop, Resize, Watermark,
|
||
Animate).</li>
|
||
<li><a href="https://github.com/aldor007/mort">mort</a> - Storage and
|
||
image processing server written in Go.</li>
|
||
<li><a href="https://github.com/donatj/mpo">mpo</a> - Decoder and
|
||
conversion tool for MPO 3D Photos.</li>
|
||
<li><a href="https://github.com/thoas/picfit">picfit</a> - An image
|
||
resizing server written in Go.</li>
|
||
<li><a href="https://github.com/fogleman/pt">pt</a> - Path tracing
|
||
engine written in Go.</li>
|
||
<li><a href="https://github.com/bamiaux/rez">rez</a> - Image resizing in
|
||
pure Go and SIMD.</li>
|
||
<li><a href="https://github.com/jonoton/scout">scout</a> - Scout is a
|
||
standalone open source software solution for DIY video security.</li>
|
||
<li><a href="https://github.com/muesli/smartcrop">smartcrop</a> - Finds
|
||
good crops for arbitrary images and crop sizes.</li>
|
||
<li><a href="https://github.com/auyer/steganography">steganography</a> -
|
||
Pure Go Library for LSB steganography.</li>
|
||
<li><a href="https://github.com/DimitarPetrov/stegify">stegify</a> - Go
|
||
tool for LSB steganography, capable of hiding any file within an
|
||
image.</li>
|
||
<li><a href="https://github.com/ajstarks/svgo">svgo</a> - Go Language
|
||
Library for SVG generation.</li>
|
||
<li><a href="https://github.com/ftrvxmtrx/tga">tga</a> - Package tga is
|
||
a TARGA image format decoder/encoder.</li>
|
||
<li><a
|
||
href="https://github.com/Pixboost/transformimgs">transformimgs</a> -
|
||
Transformimgs resizes and optimises images for Web using next-generation
|
||
formats.</li>
|
||
<li><a
|
||
href="https://github.com/mehdipourfar/webp-server">webp-server</a> -
|
||
Simple and minimal image server capable of storing, resizing, converting
|
||
and caching images.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="iot-internet-of-things">IoT (Internet of Things)</h2>
|
||
<p><em>Libraries for programming devices of the IoT.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/connectordb/connectordb">connectordb</a>
|
||
- Open-Source Platform for Quantified Self & IoT.</li>
|
||
<li><a href="https://github.com/goiot/devices">devices</a> - Suite of
|
||
libraries for IoT devices, experimental for x/exp/io.</li>
|
||
<li><a href="https://github.com/lf-edge/ekuiper">ekuiper</a> -
|
||
Lightweight data stream processing engine for IoT edge.</li>
|
||
<li><a href="https://github.com/xcodersun/eywa">eywa</a> - Project Eywa
|
||
is essentially a connection manager that keeps track of connected
|
||
devices.</li>
|
||
<li><a href="https://github.com/tibcosoftware/flogo">flogo</a> - Project
|
||
Flogo is an Open Source Framework for IoT Edge Apps &
|
||
Integration.</li>
|
||
<li><a href="https://github.com/paypal/gatt">gatt</a> - Gatt is a Go
|
||
package for building Bluetooth Low Energy peripherals.</li>
|
||
<li><a href="https://github.com/hybridgroup/gobot/">gobot</a> - Gobot is
|
||
a framework for robotics, physical computing, and the Internet of
|
||
Things.</li>
|
||
<li><a href="https://github.com/amimof/huego">huego</a> - An extensive
|
||
Philips Hue client library for Go.</li>
|
||
<li><a href="https://github.com/vaelen/iot/">iot</a> - IoT is a simple
|
||
framework for implementing a Google IoT Core device.</li>
|
||
<li><a href="https://github.com/Mainflux/mainflux">mainflux</a> -
|
||
Industrial IoT Messaging and Device Management Server.</li>
|
||
<li><a href="https://periph.io/">periph</a> - Peripherals I/O to
|
||
interface with low-level board facilities.</li>
|
||
<li><a href="https://github.com/sensorbee/sensorbee">sensorbee</a> -
|
||
Lightweight stream processing engine for IoT.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="job-scheduler">Job Scheduler</h2>
|
||
<p><em>Libraries for scheduling jobs.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/deepaksinghvi/cdule">cdule</a> - Job
|
||
scheduler library with database support</li>
|
||
<li><a href="https://github.com/datarootsio/cheek">cheek</a> - A simple
|
||
crontab like scheduler that aims to offer a KISS approach to job
|
||
scheduling.</li>
|
||
<li><a href="https://github.com/onatm/clockwerk">clockwerk</a> - Go
|
||
package to schedule periodic jobs using a simple, fluent syntax.</li>
|
||
<li><a href="https://github.com/krayzpipes/cronticker">cronticker</a> -
|
||
A ticker implementation to support cron schedules.</li>
|
||
<li><a href="https://github.com/dagu-go/dagu">Dagu</a> - No-code
|
||
workflow executor. it executes DAGs defined in a simple YAML
|
||
format.</li>
|
||
<li><a href="https://github.com/rk/go-cron">go-cron</a> - 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.</li>
|
||
<li><a href="https://github.com/rhosocial/go-dag">go-dag</a> - A
|
||
framework developed in Go that manages the execution of workflows
|
||
described by directed acyclic graphs.</li>
|
||
<li><a href="https://github.com/reugn/go-quartz">go-quartz</a> - Simple,
|
||
zero-dependency scheduling library for Go.</li>
|
||
<li><a href="https://github.com/go-co-op/gocron">gocron</a> - Easy and
|
||
fluent Go job scheduling. This is an actively maintained fork of <a
|
||
href="https://github.com/jasonlvhit/gocron">jasonlvhit/gocron</a>.</li>
|
||
<li><a href="https://github.com/fieldryand/goflow">goflow</a> - A simple
|
||
but powerful DAG scheduler and dashboard.</li>
|
||
<li><a href="https://github.com/roylee0704/gron">gron</a> - Define
|
||
time-based tasks using a simple Go API and Gron’s scheduler will run
|
||
them accordingly.</li>
|
||
<li><a href="https://github.com/adhocore/gronx">gronx</a> - Cron
|
||
expression parser, task runner and daemon consuming crontab like task
|
||
list.</li>
|
||
<li><a href="https://github.com/bamzi/jobrunner">JobRunner</a> - Smart
|
||
and featureful cron job scheduler with job queuing and live monitoring
|
||
built in.</li>
|
||
<li><a href="https://github.com/albrow/jobs">jobs</a> - Persistent and
|
||
flexible background jobs library.</li>
|
||
<li><a href="https://github.com/kilgaloon/leprechaun">leprechaun</a> -
|
||
Job scheduler that supports webhooks, crons and classic scheduling.</li>
|
||
<li><a href="https://github.com/romshark/sched">sched</a> - A job
|
||
scheduler with the ability to fast-forward time.</li>
|
||
<li><a href="https://github.com/carlescere/scheduler">scheduler</a> -
|
||
Cronjobs scheduling made easy.</li>
|
||
<li><a href="https://github.com/madflojo/tasks">tasks</a> - An easy to
|
||
use in-process scheduler for recurring tasks in Go.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="json">JSON</h2>
|
||
<p><em>Libraries for working with JSON.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/spyzhov/ajson">ajson</a> - Abstract JSON
|
||
for golang with JSONPath support.</li>
|
||
<li><a href="https://github.com/simonnilsson/ask">ask</a> - 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.</li>
|
||
<li><a href="https://github.com/cocoonspace/dynjson">dynjson</a> -
|
||
Client-customizable JSON formats for dynamic APIs.</li>
|
||
<li><a href="https://github.com/lucassscaravelli/ej">ej</a> - Write and
|
||
read JSON from different sources succinctly.</li>
|
||
<li><a href="https://github.com/vtopc/epoch">epoch</a> - Contains
|
||
primitives for marshaling/unmarshalling Unix timestamp/epoch to/from
|
||
build-in time.Time type in JSON.</li>
|
||
<li><a href="https://github.com/valyala/fastjson">fastjson</a> - Fast
|
||
JSON parser and validator for Go. No custom structs, no code generation,
|
||
no reflection.</li>
|
||
<li><a href="https://github.com/Jeffail/gabs">gabs</a> - For parsing,
|
||
creating and editing unknown or dynamic JSON in Go.</li>
|
||
<li><a href="https://github.com/skanehira/gjo">gjo</a> - Small utility
|
||
to create JSON objects.</li>
|
||
<li><a href="https://github.com/tidwall/gjson">GJSON</a> - Get a JSON
|
||
value with one line of code.</li>
|
||
<li><a href="https://github.com/ddymko/go-jsonerror">go-jsonerror</a> -
|
||
Go-JsonError is meant to allow us to easily create json response errors
|
||
that follow the JsonApi spec.</li>
|
||
<li><a href="https://github.com/nicklaw5/go-respond">go-respond</a> - Go
|
||
package for handling common HTTP JSON responses.</li>
|
||
<li><a href="https://github.com/limiu82214/gojmapr">gojmapr</a> - Get
|
||
simple struct from complex json by json path.</li>
|
||
<li><a href="https://github.com/elgs/gojq">gojq</a> - JSON query in
|
||
Golang.</li>
|
||
<li><a href="https://github.com/ChimeraCoder/gojson">gojson</a> -
|
||
Automatically generate Go (golang) struct definitions from example
|
||
JSON.</li>
|
||
<li><a href="https://github.com/nikolaydubina/htmljson">htmljson</a> -
|
||
Rich rendering of JSON as HTML in Go.</li>
|
||
<li><a href="https://github.com/yazgazan/jaydiff">JayDiff</a> - JSON
|
||
diff utility written in Go.</li>
|
||
<li><a href="https://github.com/wI2L/jettison">jettison</a> - Fast and
|
||
flexible JSON encoder for Go.</li>
|
||
<li><a href="https://github.com/romshark/jscan">jscan</a> - High
|
||
performance zero-allocation JSON iterator.</li>
|
||
<li><a href="https://mholt.github.io/json-to-go/">JSON-to-Go</a> -
|
||
Convert JSON to Go struct.</li>
|
||
<li><a href="https://json-to-proto.github.io/">JSON-to-Proto</a> -
|
||
Convert JSON to Protobuf online.</li>
|
||
<li><a href="https://github.com/m-zajac/json2go">json2go</a> - Advanced
|
||
JSON to Go struct conversion. Provides package that can parse multiple
|
||
JSON documents and create struct to fit them all.</li>
|
||
<li><a
|
||
href="https://github.com/AmuzaTkts/jsonapi-errors">jsonapi-errors</a> -
|
||
Go bindings based on the JSON API errors reference.</li>
|
||
<li><a href="https://github.com/neilotoole/jsoncolor">jsoncolor</a> -
|
||
Drop-in replacement for <code>encoding/json</code> that outputs
|
||
colorized JSON.</li>
|
||
<li><a href="https://github.com/wI2L/jsondiff">jsondiff</a> - JSON diff
|
||
library for Go based on RFC6902 (JSON Patch).</li>
|
||
<li><a href="https://github.com/miolini/jsonf">jsonf</a> - Console tool
|
||
for highlighted formatting and struct query fetching JSON.</li>
|
||
<li><a href="https://github.com/ricardolonga/jsongo">jsongo</a> - Fluent
|
||
API to make it easier to create Json objects.</li>
|
||
<li><a href="https://github.com/RichardKnop/jsonhal">jsonhal</a> -
|
||
Simple Go package to make custom structs marshal into HAL compatible
|
||
JSON responses.</li>
|
||
<li><a href="https://github.com/abusomani/jsonhandlers">jsonhandlers</a>
|
||
- JSON library to expose simple handlers that lets you easily read and
|
||
write json from various sources.</li>
|
||
<li><a href="https://github.com/sinhashubham95/jsonic">jsonic</a> -
|
||
Utilities to handle and query JSON without defining structs in a type
|
||
safe manner.</li>
|
||
<li><a href="https://github.com/Andrew-M-C/go.jsonvalue">jsonvalue</a> -
|
||
A fast and convenient library for unstructured JSON data, replacing
|
||
<code>encoding/json</code>.</li>
|
||
<li><a href="https://github.com/zerosnake0/jzon">jzon</a> - JSON library
|
||
with standard compatible API/behavior.</li>
|
||
<li><a href="https://github.com/Qntfy/kazaam">kazaam</a> - API for
|
||
arbitrary transformation of JSON documents.</li>
|
||
<li><a
|
||
href="https://github.com/mickep76/mapslice-json">mapslice-json</a> - Go
|
||
MapSlice for ordered marshal/ unmarshal of maps in JSON.</li>
|
||
<li><a href="https://github.com/PerimeterX/marshmallow">marshmallow</a>
|
||
- Performant JSON unmarshalling for flexible use cases.</li>
|
||
<li><a href="https://github.com/sanbornm/mp">mp</a> - Simple cli email
|
||
parser. It currently takes stdin and outputs JSON.</li>
|
||
<li><a href="https://github.com/ohler55/ojg">OjG</a> - Optimized JSON
|
||
for Go is a high performance parser with a variety of additional JSON
|
||
tools including JSONPath.</li>
|
||
<li><a
|
||
href="https://github.com/dedalqq/omg.jsonparser">omg.jsonparser</a> -
|
||
Simple JSON parser with validation by condition via golang struct fields
|
||
tags.</li>
|
||
<li><a href="https://github.com/olvrng/ujson">ujson</a> - Fast and
|
||
minimal JSON parser and transformer that works on unstructured
|
||
JSON.</li>
|
||
<li><a href="https://github.com/miladibra10/vjson">vjson</a> - Go
|
||
package for validating JSON objects with declaring a JSON schema with
|
||
fluent API.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="logging">Logging</h2>
|
||
<p><em>Libraries for generating and working with log files.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/amoghe/distillog">distillog</a> -
|
||
distilled levelled logging (think of it as stdlib + log levels).</li>
|
||
<li><a href="https://github.com/kpango/glg">glg</a> - glg is simple and
|
||
fast leveled logging library for Go.</li>
|
||
<li><a href="https://github.com/lajosbencz/glo">glo</a> - PHP Monolog
|
||
inspired logging facility with identical severity levels.</li>
|
||
<li><a href="https://github.com/golang/glog">glog</a> - Leveled
|
||
execution logs for Go.</li>
|
||
<li><a
|
||
href="https://github.com/utahta/go-cronowriter">go-cronowriter</a> -
|
||
Simple writer that rotate log files automatically based on current date
|
||
and time, like cronolog.</li>
|
||
<li><a href="https://github.com/pieterclaerhout/go-log">go-log</a> - A
|
||
logging library with stack traces, object dumping and optional
|
||
timestamps.</li>
|
||
<li><a href="https://github.com/subchen/go-log">go-log</a> - Simple and
|
||
configurable Logging in Go, with level, formatters and writers.</li>
|
||
<li><a href="https://github.com/siddontang/go-log">go-log</a> - Log lib
|
||
supports level and multi handlers.</li>
|
||
<li><a href="https://github.com/ian-kent/go-log">go-log</a> - Log4j
|
||
implementation in Go.</li>
|
||
<li><a href="https://github.com/apsdehal/go-logger">go-logger</a> -
|
||
Simple logger of Go Programs, with level handlers.</li>
|
||
<li><a href="https://github.com/sadlil/gologger">gologger</a> - Simple
|
||
easy to use log lib for go, logs in Colored Console, Simple Console,
|
||
File or Elasticsearch.</li>
|
||
<li><a href="https://github.com/aphistic/gomol">gomol</a> -
|
||
Multiple-output, structured logging for Go with extensible logging
|
||
outputs.</li>
|
||
<li><a
|
||
href="https://github.com/One-com/gone/tree/master/log">gone/log</a> -
|
||
Fast, extendable, full-featured, std-lib source compatible log
|
||
library.</li>
|
||
<li><a href="https://github.com/henvic/httpretty">httpretty</a> -
|
||
Pretty-prints your regular HTTP requests on your terminal for debugging
|
||
(similar to http.DumpRequest).</li>
|
||
<li><a href="https://github.com/ssgreg/journald">journald</a> - Go
|
||
implementation of systemd Journal’s native API for logging.</li>
|
||
<li><a href="https://github.com/clok/kemba">kemba</a> - A tiny debug
|
||
logging tool inspired by <a
|
||
href="https://github.com/visionmedia/debug">debug</a>, great for CLI
|
||
tools and applications.</li>
|
||
<li><a href="https://github.com/aerogo/log">log</a> - An O(1) logging
|
||
system that allows you to connect one log to multiple writers
|
||
(e.g. stdout, a file and a TCP connection).</li>
|
||
<li><a href="https://github.com/apex/log">log</a> - Structured logging
|
||
package for Go.</li>
|
||
<li><a href="https://github.com/go-playground/log">log</a> - Simple,
|
||
configurable and scalable Structured Logging for Go.</li>
|
||
<li><a href="https://github.com/teris-io/log">log</a> - Structured log
|
||
interface for Go cleanly separates logging facade from its
|
||
implementation.</li>
|
||
<li><a href="https://github.com/heartwilltell/log">log</a> - Simple
|
||
leveled logging wrapper around standard log package.</li>
|
||
<li><a href="https://github.com/no-src/log">log</a> - A simple logging
|
||
framework out of the box.</li>
|
||
<li><a href="https://github.com/firstrow/logvoyage">log-voyage</a> -
|
||
Full-featured logging saas written in golang.</li>
|
||
<li><a href="https://github.com/inconshreveable/log15">log15</a> -
|
||
Simple, powerful logging for Go.</li>
|
||
<li><a href="https://github.com/ewwwwwqm/logdump">logdump</a> - Package
|
||
for multi-level logging.</li>
|
||
<li><a href="https://github.com/chzyer/logex">logex</a> - Golang log
|
||
lib, supports tracking and level, wrap by standard log lib.</li>
|
||
<li><a href="https://github.com/azer/logger">logger</a> - Minimalistic
|
||
logging library for Go.</li>
|
||
<li><a href="https://github.com/borderstech/logmatic">logmatic</a> -
|
||
Colorized logger for Golang with dynamic log level configuration.</li>
|
||
<li><a href="https://github.com/mbndr/logo">logo</a> - Golang logger to
|
||
different configurable writers.</li>
|
||
<li><a href="https://github.com/Sirupsen/logrus">logrus</a> - Structured
|
||
logger for Go.</li>
|
||
<li><a
|
||
href="https://github.com/cabify/logrusiowriter">logrusiowriter</a> -
|
||
<code>io.Writer</code> implementation using <a
|
||
href="https://github.com/sirupsen/logrus">logrus</a> logger.</li>
|
||
<li><a href="https://github.com/sebest/logrusly">logrusly</a> - <a
|
||
href="https://github.com/sirupsen/logrus">logrus</a> plug-in to send
|
||
errors to a <a href="https://www.loggly.com/">Loggly</a>.</li>
|
||
<li><a href="https://github.com/logur/logur">logur</a> - An opinionated
|
||
logger interface and collection of logging best practices with adapters
|
||
and integrations for well-known libraries (<a
|
||
href="https://github.com/sirupsen/logrus">logrus</a>, <a
|
||
href="https://github.com/go-kit/kit/tree/master/log">go-kit log</a>, <a
|
||
href="https://github.com/uber-go/zap">zap</a>, <a
|
||
href="https://github.com/rs/zerolog">zerolog</a>, etc).</li>
|
||
<li><a href="https://github.com/hashicorp/logutils">logutils</a> -
|
||
Utilities for slightly better logging in Go (Golang) extending the
|
||
standard logger.</li>
|
||
<li><a href="https://github.com/mgutz/logxi">logxi</a> - 12-factor app
|
||
logger that is fast and makes you happy.</li>
|
||
<li><a href="https://github.com/natefinch/lumberjack">lumberjack</a> -
|
||
Simple rolling logger, implements io.WriteCloser.</li>
|
||
<li><a href="https://github.com/jbrodriguez/mlog">mlog</a> - Simple
|
||
logging module for go, with 5 levels, an optional rotating logfile
|
||
feature and stdout/stderr output.</li>
|
||
<li><a href="https://github.com/gyozatech/noodlog">noodlog</a> -
|
||
Parametrized JSON logging library which lets you obfuscate sensitive
|
||
data and marshal any kind of content. No more printed pointers instead
|
||
of values, nor escape chars for the JSON strings.</li>
|
||
<li><a href="https://github.com/francoispqt/onelog">onelog</a> - Onelog
|
||
is a dead simple but very efficient JSON logger. It is the fastest JSON
|
||
logger out there in all scenarios. Also, it is one of the logger with
|
||
the lowest allocation.</li>
|
||
<li><a href="https://github.com/go-ozzo/ozzo-log">ozzo-log</a> - High
|
||
performance logging supporting log severity, categorization, and
|
||
filtering. Can send filtered log messages to various targets
|
||
(e.g. console, network, mail).</li>
|
||
<li><a href="https://github.com/phuslu/log">phuslu/log</a> - High
|
||
performance structured logging.</li>
|
||
<li><a href="https://github.com/k0kubun/pp">pp</a> - Colored pretty
|
||
printer for Go language.</li>
|
||
<li><a
|
||
href="https://github.com/arthurkiller/rollingWriter">rollingwriter</a> -
|
||
RollingWriter is an auto-rotate <code>io.Writer</code> implementation
|
||
with multi policies to provide log file rotation.</li>
|
||
<li><a href="https://github.com/cihub/seelog">seelog</a> - Logging
|
||
functionality with flexible dispatching, filtering, and formatting.</li>
|
||
<li><a href="https://github.com/echocat/slf4g">slf4g</a> - Simple
|
||
Logging Facade for Golang: Simple structured logging; but powerful,
|
||
extendable and customizable, with huge amount of learnings from decades
|
||
of past logging frameworks.</li>
|
||
<li><a href="https://github.com/gookit/slog">slog</a> - Lightweight,
|
||
configurable, extensible logger for Go.</li>
|
||
<li><a
|
||
href="https://github.com/samber/slog-formatter">slog-formatter</a> -
|
||
Common formatters for slog and helpers to build your own.</li>
|
||
<li><a href="https://github.com/samber/slog-multi">slog-multi</a> -
|
||
Chain of slog.Handler (pipeline, fanout…).</li>
|
||
<li><a href="https://github.com/davecgh/go-spew">spew</a> - Implements a
|
||
deep pretty printer for Go data structures to aid in debugging.</li>
|
||
<li><a href="https://github.com/simukti/sqldb-logger">sqldb-logger</a> -
|
||
A logger for Go SQL database driver without modify existing *sql.DB
|
||
stdlib usage.</li>
|
||
<li><a href="https://github.com/alexcesaro/log">stdlog</a> - Stdlog is
|
||
an object-oriented library providing leveled logging. It is very useful
|
||
for cron jobs.</li>
|
||
<li><a href="https://github.com/structy/log">structy/log</a> - A simple
|
||
to use log system, minimalist but with features for debugging and
|
||
differentiation of messages.</li>
|
||
<li><a href="https://github.com/hpcloud/tail">tail</a> - Go package
|
||
striving to emulate the features of the BSD tail program.</li>
|
||
<li><a href="https://github.com/lmittmann/tint">tint</a> - A
|
||
slog.Handler that writes tinted logs.</li>
|
||
<li><a href="https://github.com/xfxdev/xlog">xlog</a> - Plugin
|
||
architecture and flexible log system for Go, with level ctrl, multiple
|
||
log target and custom log format.</li>
|
||
<li><a href="https://github.com/rs/xlog">xlog</a> - Structured logger
|
||
for <code>net/context</code> aware HTTP handlers with flexible
|
||
dispatching.</li>
|
||
<li><a href="https://github.com/xybor-x/xylog">xylog</a> - Leveled and
|
||
structured logging, dynamic fields, high performance, zone management,
|
||
simple configuration, and readable syntax.</li>
|
||
<li><a href="https://github.com/jfcg/yell">yell</a> - Yet another
|
||
minimalistic logging library.</li>
|
||
<li><a href="https://github.com/uber-go/zap">zap</a> - Fast, structured,
|
||
leveled logging in Go.</li>
|
||
<li><a href="https://github.com/yuseferi/zax">zax</a> - Integrate
|
||
Context with Zap logger, which leads to more flexibility in Go
|
||
logging.</li>
|
||
<li><a href="https://github.com/rs/zerolog">zerolog</a> -
|
||
Zero-allocation JSON logger.</li>
|
||
<li><a href="https://github.com/edoger/zkits-logger">zkits-logger</a> -
|
||
A powerful zero-dependency JSON logger.</li>
|
||
<li><a href="https://github.com/nkmr-jp/zl">zl</a> - High Developer
|
||
Experience, zap based logger. It offers rich functionality but is easy
|
||
to configure.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="machine-learning">Machine Learning</h2>
|
||
<p><em>Libraries for Machine Learning.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jbrukh/bayesian">bayesian</a> - Naive
|
||
Bayesian Classification for Golang.</li>
|
||
<li><a
|
||
href="https://github.com/ryanbressler/CloudForest">CloudForest</a> -
|
||
Fast, flexible, multi-threaded ensembles of decision trees for machine
|
||
learning in pure Go.</li>
|
||
<li><a href="https://github.com/sgrodriguez/ddt">ddt</a> - Dynamic
|
||
decision tree, create trees defining customizable rules.</li>
|
||
<li><a href="https://github.com/MaxHalford/eaopt">eaopt</a> - An
|
||
evolutionary optimization library.</li>
|
||
<li><a href="https://github.com/khezen/evoli">evoli</a> - Genetic
|
||
Algorithm and Particle Swarm Optimization library.</li>
|
||
<li><a href="https://github.com/Fontinalis/fonet">fonet</a> - A Deep
|
||
Neural Network library written in Go.</li>
|
||
<li><a
|
||
href="https://github.com/e-XpertSolutions/go-cluster">go-cluster</a> -
|
||
Go implementation of the k-modes and k-prototypes clustering
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/patrikeh/go-deep">go-deep</a> - A
|
||
feature-rich neural network library in Go.</li>
|
||
<li><a href="https://github.com/white-pony/go-fann">go-fann</a> - Go
|
||
bindings for Fast Artificial Neural Networks(FANN) library.</li>
|
||
<li><a
|
||
href="https://github.com/nikolaydubina/go-featureprocessing">go-featureprocessing</a>
|
||
- Fast and convenient feature processing for low latency machine
|
||
learning in Go.</li>
|
||
<li><a href="https://github.com/thoj/go-galib">go-galib</a> - Genetic
|
||
Algorithms library written in Go / golang.</li>
|
||
<li><a href="https://github.com/daviddengcn/go-pr">go-pr</a> - Pattern
|
||
recognition package in Go lang.</li>
|
||
<li><a href="https://github.com/goml/gobrain">gobrain</a> - Neural
|
||
Networks written in go.</li>
|
||
<li><a href="https://github.com/e-dard/godist">godist</a> - Various
|
||
probability distributions, and associated methods.</li>
|
||
<li><a href="https://github.com/tomcraven/goga">goga</a> - Genetic
|
||
algorithm library for Go.</li>
|
||
<li><a href="https://github.com/sjwhitworth/golearn">GoLearn</a> -
|
||
General Machine Learning library for Go.</li>
|
||
<li><a href="https://github.com/danieldk/golinear">golinear</a> -
|
||
liblinear bindings for Go.</li>
|
||
<li><a href="https://github.com/surenderthakran/gomind">GoMind</a> - A
|
||
simplistic Neural Network Library in Go.</li>
|
||
<li><a href="https://github.com/cdipaolo/goml">goml</a> - On-line
|
||
Machine Learning in Go.</li>
|
||
<li><a href="https://github.com/dathoangnd/gonet">gonet</a> - Neural
|
||
Network for Go.</li>
|
||
<li><a href="https://github.com/c-bata/goptuna">Goptuna</a> - Bayesian
|
||
optimization framework for black-box functions written in Go. Everything
|
||
will be optimized.</li>
|
||
<li><a href="https://github.com/timkaye11/goRecommend">goRecommend</a> -
|
||
Recommendation Algorithms library written in Go.</li>
|
||
<li><a href="https://github.com/gorgonia/gorgonia">gorgonia</a> -
|
||
graph-based computational library like Theano for Go that provides
|
||
primitives for building various machine learning and neural network
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/zhenghaoz/gorse">gorse</a> - An offline
|
||
recommender system backend based on collaborative filtering written in
|
||
Go.</li>
|
||
<li><a href="https://github.com/asafschers/goscore">goscore</a> - Go
|
||
Scoring API for PMML.</li>
|
||
<li><a href="https://github.com/otiai10/gosseract">gosseract</a> - Go
|
||
package for OCR (Optical Character Recognition), by using Tesseract C++
|
||
library.</li>
|
||
<li><a href="https://github.com/datastream/libsvm">libsvm</a> - libsvm
|
||
golang version derived work based on LIBSVM 3.14.</li>
|
||
<li><a href="https://github.com/BayesWitnesses/m2cgen">m2cgen</a> - A
|
||
CLI tool to transpile trained classic ML models into a native Go code
|
||
with zero dependencies, written in Python with Go language support.</li>
|
||
<li><a href="https://github.com/jinyeom/neat">neat</a> - Plug-and-play,
|
||
parallel Go framework for NeuroEvolution of Augmenting Topologies
|
||
(NEAT).</li>
|
||
<li><a href="https://github.com/schuyler/neural-go">neural-go</a> -
|
||
Multilayer perceptron network implemented in Go, with training via
|
||
backpropagation.</li>
|
||
<li><a href="https://github.com/otiai10/ocrserver">ocrserver</a> - A
|
||
simple OCR API server, seriously easy to be deployed by Docker and
|
||
Heroku.</li>
|
||
<li><a href="https://github.com/owulveryck/onnx-go">onnx-go</a> - Go
|
||
Interface to Open Neural Network Exchange (ONNX).</li>
|
||
<li><a href="https://github.com/ThePaw/probab">probab</a> - Probability
|
||
distribution functions. Bayesian inference. Written in pure Go.</li>
|
||
<li><a
|
||
href="https://github.com/malaschitz/randomForest">randomforest</a> -
|
||
Easy to use Random Forest library for Go.</li>
|
||
<li><a href="https://github.com/muesli/regommend">regommend</a> -
|
||
Recommendation & collaborative filtering engine.</li>
|
||
<li><a href="https://github.com/eaigner/shield">shield</a> - Bayesian
|
||
text classifier with flexible tokenizers and storage backends for
|
||
Go.</li>
|
||
<li><a href="https://github.com/galeone/tfgo">tfgo</a> - 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.</li>
|
||
<li><a href="https://github.com/Xamber/Varis">Varis</a> - Golang Neural
|
||
Network.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="messaging">Messaging</h2>
|
||
<p><em>Libraries that implement messaging systems.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/kak-tus/ami">ami</a> - Go client to
|
||
reliable queues based on Redis Cluster Streams.</li>
|
||
<li><a href="https://github.com/rabbitmq/amqp091-go">amqp</a> - Go
|
||
RabbitMQ Client Library.</li>
|
||
<li><a href="https://github.com/sideshow/apns2">APNs2</a> - HTTP/2 Apple
|
||
Push Notification provider for Go — Send push notifications to iOS,
|
||
tvOS, Safari and OSX apps.</li>
|
||
<li><a href="https://github.com/hibiken/asynq">Asynq</a> - A simple,
|
||
reliable, and efficient distributed task queue for Go built on top of
|
||
Redis.</li>
|
||
<li><a href="https://github.com/Clivern/Beaver">Beaver</a> - A real time
|
||
messaging server to build a scalable in-app notifications, multiplayer
|
||
games, chat apps in web and mobile apps.</li>
|
||
<li><a href="https://github.com/Jeffail/benthos">Benthos</a> - A message
|
||
streaming bridge between a range of protocols.</li>
|
||
<li><a href="https://github.com/mustafaturan/bus">Bus</a> - Minimalist
|
||
message bus implementation for internal communication.</li>
|
||
<li><a href="https://github.com/centrifugal/centrifugo">Centrifugo</a> -
|
||
Real-time messaging (Websockets or SockJS) server in Go.</li>
|
||
<li><a href="https://github.com/chanify/chanify">Chanify</a> - A push
|
||
notification server send message to your iOS devices.</li>
|
||
<li><a href="https://github.com/jeroenrinzema/commander">Commander</a> -
|
||
A high-level event driven consumer/producer supporting various
|
||
“dialects” such as Apache Kafka.</li>
|
||
<li><a
|
||
href="https://github.com/confluentinc/confluent-kafka-go">Confluent
|
||
Kafka Golang Client</a> - confluent-kafka-go is Confluent’s Golang
|
||
client for Apache Kafka and the Confluent Platform.</li>
|
||
<li><a href="https://github.com/godbus/dbus">dbus</a> - Native Go
|
||
bindings for D-Bus.</li>
|
||
<li><a href="https://github.com/appleboy/drone-line">drone-line</a> -
|
||
Sending <a href="https://at.line.me/en">Line</a> notifications using a
|
||
binary, docker or Drone CI.</li>
|
||
<li><a href="https://github.com/olebedev/emitter">emitter</a> - Emits
|
||
events using Go way, with wildcard, predicates, cancellation
|
||
possibilities and many other good wins.</li>
|
||
<li><a href="https://github.com/agoalofalife/event">event</a> -
|
||
Implementation of the pattern observer.</li>
|
||
<li><a href="https://github.com/asaskevich/EventBus">EventBus</a> - The
|
||
lightweight event bus with async compatibility.</li>
|
||
<li><a
|
||
href="https://github.com/osamingo/gaurun-client">gaurun-client</a> -
|
||
Gaurun Client written in Go.</li>
|
||
<li><a href="https://github.com/desertbit/glue">Glue</a> - Robust Go and
|
||
Javascript Socket Library (Alternative to Socket.io).</li>
|
||
<li><a
|
||
href="https://github.com/stanipetrosyan/go-eventbus">go-eventbus</a> -
|
||
Simple Event Bus package for Go.</li>
|
||
<li><a href="https://github.com/cheshir/go-mq">go-mq</a> - RabbitMQ
|
||
client with declarative configuration.</li>
|
||
<li><a href="https://github.com/TheCreeper/go-notify">go-notify</a> -
|
||
Native implementation of the freedesktop notification spec.</li>
|
||
<li><a href="https://github.com/nsqio/go-nsq">go-nsq</a> - the official
|
||
Go package for NSQ.</li>
|
||
<li><a href="https://github.com/jirenius/go-res">go-res</a> - Package
|
||
for building REST/real-time services where clients are synchronized
|
||
seamlessly, using NATS and Resgate.</li>
|
||
<li><a href="https://github.com/googollee/go-socket.io">go-socket.io</a>
|
||
- socket.io library for golang, a realtime application framework.</li>
|
||
<li><a href="https://github.com/maxatome/go-vitotrol">go-vitotrol</a> -
|
||
Client library to Viessmann Vitotrol web service.</li>
|
||
<li><a href="https://github.com/trivago/gollum">Gollum</a> - A n:m
|
||
multiplexer that gathers messages from different sources and broadcasts
|
||
them to a set of destinations.</li>
|
||
<li><a href="https://github.com/jcuga/golongpoll">golongpoll</a> - HTTP
|
||
longpoll server library that makes web pub-sub simple.</li>
|
||
<li><a
|
||
href="https://github.com/Terry-Mao/gopush-cluster">gopush-cluster</a> -
|
||
gopush-cluster is a go push server cluster.</li>
|
||
<li><a href="https://github.com/appleboy/gorush">gorush</a> - Push
|
||
notification server using <a
|
||
href="https://github.com/sideshow/apns2">APNs2</a> and google <a
|
||
href="https://github.com/google/go-gcm">GCM</a>.</li>
|
||
<li><a href="https://github.com/alexsniffin/gosd">gosd</a> - A library
|
||
for scheduling when to dispatch a message to a channel.</li>
|
||
<li><a href="https://github.com/smancke/guble">guble</a> - Messaging
|
||
server using push notifications (Google Firebase Cloud Messaging, Apple
|
||
Push Notification services, SMS) as well as websockets, a REST API,
|
||
featuring distributed operation and message-persistence.</li>
|
||
<li><a href="https://github.com/leozz37/hare">hare</a> - A user friendly
|
||
library for sending messages and listening to TCP sockets.</li>
|
||
<li><a href="https://github.com/leandro-lugaresi/hub">hub</a> - A
|
||
Message/Event Hub for Go applications, using publish/subscribe pattern
|
||
with support for alias like rabbitMQ exchanges.</li>
|
||
<li><a href="https://github.com/socifi/jazz">jazz</a> - A simple
|
||
RabbitMQ abstraction layer for queue administration and publishing and
|
||
consuming of messages.</li>
|
||
<li><a href="https://github.com/RichardKnop/machinery">machinery</a> -
|
||
Asynchronous task queue/job queue based on distributed message
|
||
passing.</li>
|
||
<li><a href="https://github.com/nanomsg/mangos">mangos</a> - Pure go
|
||
implementation of the Nanomsg (“Scalability Protocols”) with transport
|
||
interoperability.</li>
|
||
<li><a href="https://github.com/olahol/melody">melody</a> - Minimalist
|
||
framework for dealing with websocket sessions, includes broadcasting and
|
||
automatic ping/pong handling.</li>
|
||
<li><a href="https://github.com/dunglas/mercure">Mercure</a> - Server
|
||
and library to dispatch server-sent updates using the Mercure protocol
|
||
(built on top of Server-Sent Events).</li>
|
||
<li><a href="https://github.com/vardius/message-bus">messagebus</a> -
|
||
messagebus is a Go simple async message bus, perfect for using as event
|
||
bus when doing event sourcing, CQRS, DDD.</li>
|
||
<li><a href="https://github.com/nats-io/nats">NATS Go Client</a> -
|
||
Lightweight and high performance publish-subscribe and distributed
|
||
queueing messaging system - this is the Go library.</li>
|
||
<li><a
|
||
href="https://github.com/rafaeljesus/nsq-event-bus">nsq-event-bus</a> -
|
||
A tiny wrapper around NSQ topic and channel.</li>
|
||
<li><a href="https://github.com/dailymotion/oplog">oplog</a> - Generic
|
||
oplog/replication system for REST APIs.</li>
|
||
<li><a href="https://github.com/tuxychandru/pubsub">pubsub</a> - Simple
|
||
pubsub package for go.</li>
|
||
<li><a href="https://github.com/timbray/quamina">Quamina</a> - Fast
|
||
pattern-matching for filtering messages and events.</li>
|
||
<li><a href="https://github.com/rafaeljesus/rabbus">rabbus</a> - A tiny
|
||
wrapper over amqp exchanges and queues.</li>
|
||
<li><a href="https://github.com/jandelgado/rabtap">rabtap</a> - RabbitMQ
|
||
swiss army knife cli app.</li>
|
||
<li><a href="https://github.com/sybrexsys/RapidMQ">RapidMQ</a> - RapidMQ
|
||
is a lightweight and reliable library for managing of the local messages
|
||
queue.</li>
|
||
<li><a href="https://github.com/hyperonym/ratus">Ratus</a> - Ratus is a
|
||
RESTful asynchronous task queue server.</li>
|
||
<li><a href="https://github.com/robinjoseph08/redisqueue">redisqueue</a>
|
||
- redisqueue provides a producer and consumer of a queue that uses Redis
|
||
streams.</li>
|
||
<li><a href="https://github.com/sbabiv/rmqconn">rmqconn</a> - 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.</li>
|
||
<li><a href="https://github.com/Shopify/sarama">sarama</a> - Go library
|
||
for Apache Kafka.</li>
|
||
<li><a href="https://github.com/uniqush/uniqush-push">Uniqush-Push</a> -
|
||
Redis backed unified push service for server-side notifications to
|
||
mobile devices.</li>
|
||
<li><a href="https://github.com/ThreeDotsLabs/watermill">Watermill</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/pebbe/zmq4">zmq4</a> - Go interface to
|
||
ZeroMQ version 4. Also available for <a
|
||
href="https://github.com/pebbe/zmq3">version 3</a> and <a
|
||
href="https://github.com/pebbe/zmq2">version 2</a>.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="microsoft-office">Microsoft Office</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/unidoc/unioffice">unioffice</a> - Pure
|
||
go library for creating and processing Office Word (.docx), Excel
|
||
(.xlsx) and Powerpoint (.pptx) documents.</li>
|
||
</ul>
|
||
<h3 id="microsoft-excel">Microsoft Excel</h3>
|
||
<p><em>Libraries for working with Microsoft Excel.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/xuri/excelize">excelize</a> - Golang
|
||
library for reading and writing Microsoft Excel™ (XLSX) files.</li>
|
||
<li><a href="https://github.com/go-the-way/exl">exl</a> - Excel binding
|
||
to struct written in Go.(Only supports Go1.18+)</li>
|
||
<li><a href="https://github.com/szyhf/go-excel">go-excel</a> - A simple
|
||
and light reader to read a relate-db-like excel as a table.</li>
|
||
<li><a href="https://github.com/fterrag/goxlsxwriter">goxlsxwriter</a> -
|
||
Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel)
|
||
files.</li>
|
||
<li><a href="https://github.com/tealeg/xlsx">xlsx</a> - Library to
|
||
simplify reading the XML format used by recent version of Microsoft
|
||
Excel in Go programs.</li>
|
||
<li><a href="https://github.com/plandem/xlsx">xlsx</a> - Fast and safe
|
||
way to read/update your existing Microsoft Excel files in Go
|
||
programs.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="miscellaneous">Miscellaneous</h2>
|
||
<h3 id="dependency-injection">Dependency Injection</h3>
|
||
<p><em>Libraries for working with dependency injection.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/magic003/alice">alice</a> - Additive
|
||
dependency injection container for Golang.</li>
|
||
<li><a href="http://github.com/boot-go/boot">boot-go</a> -
|
||
Component-based development with dependency injection using reflections
|
||
for Go developers.</li>
|
||
<li><a href="https://gitlab.com/cosban/di">cosban/di</a> - A code
|
||
generation based dependency injection wiring tool.</li>
|
||
<li><a href="https://github.com/goava/di">di</a> - A dependency
|
||
injection container for go programming language.</li>
|
||
<li><a href="https://github.com/uber-go/dig">dig</a> - A reflection
|
||
based dependency injection toolkit for Go.</li>
|
||
<li><a href="https://github.com/i-love-flamingo/dingo">dingo</a> - A
|
||
dependency injection toolkit for Go, based on Guice.</li>
|
||
<li><a href="https://github.com/samber/do">do</a> - A dependency
|
||
injection framework based on Generics.</li>
|
||
<li><a href="https://github.com/uber-go/fx">fx</a> - A dependency
|
||
injection based application framework for Go (built on top of dig).</li>
|
||
<li><a href="https://github.com/vardius/gocontainer">gocontainer</a> -
|
||
Simple Dependency Injection Container.</li>
|
||
<li><a href="https://github.com/goioc/di">goioc/di</a> - Spring-inspired
|
||
Dependency Injection Container.</li>
|
||
<li><a href="https://github.com/golobby/container">GoLobby/Container</a>
|
||
- GoLobby Container is a lightweight yet powerful IoC dependency
|
||
injection container for the Go programming language.</li>
|
||
<li><a href="https://github.com/NVIDIA/gontainer">gontainer</a> - A
|
||
dependency injection service container for Go projects.</li>
|
||
<li><a
|
||
href="https://github.com/gontainer/gontainer">gontainer/gontainer</a> -
|
||
A YAML-based Dependency Injection container for GO. It supports
|
||
dependencies’ scopes, and auto-detection of circular dependencies.
|
||
Gontainer is concurrent-safe.</li>
|
||
<li><a href="https://github.com/google/wire">google/wire</a> - Automated
|
||
Initialization in Go.</li>
|
||
<li><a href="https://github.com/HnH/di">HnH/di</a> - DI container
|
||
library that is focused on clean API and flexibility.</li>
|
||
<li><a href="https://github.com/go-kata/kinit">kinit</a> - Customizable
|
||
dependency injection container with the global mode, cascade
|
||
initialization and panic-safe finalization.</li>
|
||
<li><a href="https://github.com/go-kod/kod">kod</a> - A generics based
|
||
dependency injection framework for Go.</li>
|
||
<li><a href="https://github.com/logrange/linker">linker</a> - A
|
||
reflection based dependency injection and inversion of control library
|
||
with components lifecycle support.</li>
|
||
<li><a href="https://github.com/muir/nject">nject</a> - A type safe,
|
||
reflective framework for libraries, tests, http endpoints, and service
|
||
startup.</li>
|
||
<li><a href="https://github.com/firasdarwish/ore">ore</a> - Lightweight,
|
||
generic & simple dependency injection (DI) container.</li>
|
||
<li><a href="https://github.com/Fs02/wire">wire</a> - Strict Runtime
|
||
Dependency Injection for Golang.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="project-layout">Project Layout</h3>
|
||
<p><em><strong>Unofficial</strong> set of patterns for structuring
|
||
projects.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/ardanlabs/service">ardanlabs/service</a>
|
||
- A <a href="https://github.com/ardanlabs/service/wiki">starter kit</a>
|
||
for building production grade scalable web service applications.</li>
|
||
<li><a
|
||
href="https://github.com/lacion/cookiecutter-golang">cookiecutter-golang</a>
|
||
- A Go application boilerplate template for quick starting projects
|
||
following production best practices.</li>
|
||
<li><a href="https://github.com/octomation/go-module">go-module</a> -
|
||
Template for a typical module written on Go.</li>
|
||
<li><a href="https://github.com/zitryss/go-sample">go-sample</a> - A
|
||
sample layout for Go application projects with the real code.</li>
|
||
<li><a href="https://github.com/allaboutapps/go-starter">go-starter</a>
|
||
- An opinionated production-ready RESTful JSON backend template, highly
|
||
integrated with VSCode DevContainers.</li>
|
||
<li><a
|
||
href="https://github.com/Fs02/go-todo-backend">go-todo-backend</a> - Go
|
||
Todo Backend example using modular project layout for product
|
||
microservice.</li>
|
||
<li><a href="https://github.com/wajox/gobase">gobase</a> - A simple
|
||
skeleton for golang application with basic setup for real golang
|
||
application.</li>
|
||
<li><a
|
||
href="https://github.com/golang-standards/project-layout">golang-standards/project-layout</a>
|
||
- Set of common historical and emerging project layout patterns in the
|
||
Go ecosystem. Note: despite the org-name they do not represent official
|
||
golang standards, see <a
|
||
href="https://github.com/golang-standards/project-layout/issues/117">this
|
||
issue</a> for more information. Nonetheless, some may find the layout
|
||
useful.</li>
|
||
<li><a
|
||
href="https://github.com/golang-templates/seed">golang-templates/seed</a>
|
||
- Go application GitHub repository template.</li>
|
||
<li><a href="https://github.com/insidieux/inizio">insidieux/inizio</a> -
|
||
Golang project layout generator with plugins.</li>
|
||
<li><a
|
||
href="https://github.com/sagikazarmark/modern-go-application">modern-go-application</a>
|
||
- Go application boilerplate and example applying modern practices.</li>
|
||
<li><a href="https://github.com/go-nunu/nunu">nunu</a> - Nunu is a
|
||
scaffolding tool for building Go applications.</li>
|
||
<li><a href="https://github.com/mikestefanello/pagoda">pagoda</a> -
|
||
Rapid, easy full-stack web development starter kit built in Go.</li>
|
||
<li><a href="https://github.com/catchplay/scaffold">scaffold</a> -
|
||
Scaffold generates a starter Go project layout. Lets you focus on
|
||
business logic implemented.</li>
|
||
<li><a
|
||
href="https://github.com/wangyoucao577/go-project-layout">wangyoucao577/go-project-layout</a>
|
||
- Set of practices and discussions on how to structure Go project
|
||
layout.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="strings">Strings</h3>
|
||
<p><em>Libraries for working with strings.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/happy-sdk/happy/tree/main/pkg/strings/bexp">bexp</a>
|
||
- Go implementation of Brace Expansion mechanism to generate arbitrary
|
||
strings.</li>
|
||
<li><a href="https://github.com/chanced/caps">caps</a> - A case
|
||
conversion library.</li>
|
||
<li><a href="https://gitlab.com/tymonx/go-formatter">go-formatter</a> -
|
||
Implements <strong>replacement fields</strong> surrounded by curly
|
||
braces <code>{}</code> format strings.</li>
|
||
<li><a href="https://github.com/gobeam/Stringy">gobeam/Stringy</a> -
|
||
String manipulation library to convert string to camel case, snake case,
|
||
kebab case / slugify etc.</li>
|
||
<li><a href="https://github.com/ozgio/strutil">strutil</a> - String
|
||
utilities.</li>
|
||
<li><a href="https://github.com/abhimanyu003/sttr">sttr</a> -
|
||
cross-platform, cli app to perform various operations on string.</li>
|
||
<li><a href="https://github.com/huandu/xstrings">xstrings</a> -
|
||
Collection of useful string functions ported from other languages.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="uncategorized">Uncategorized</h3>
|
||
<p><em>These libraries were placed here because none of the other
|
||
categories seemed to fit.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/mudler/anagent">anagent</a> -
|
||
Minimalistic, pluggable Golang evloop/timer handler with
|
||
dependency-injection.</li>
|
||
<li><a href="https://github.com/antchfx/antch">antch</a> - A fast,
|
||
powerful and extensible web crawling & scraping framework.</li>
|
||
<li><a href="https://github.com/mholt/archiver">archiver</a> - Library
|
||
and command for making and extracting .zip and .tar.gz archives.</li>
|
||
<li><a href="https://github.com/artyom/autoflags">autoflags</a> - Go
|
||
package to automatically define command line flags from struct
|
||
fields.</li>
|
||
<li><a href="https://github.com/kirillDanshin/avgRating">avgRating</a> -
|
||
Calculate average score and rating based on Wilson Score Equation.</li>
|
||
<li><a href="https://github.com/dimiro1/banner">banner</a> - Add
|
||
beautiful banners into your Go applications.</li>
|
||
<li><a href="https://github.com/mojocn/base64Captcha">base64Captcha</a>
|
||
- Base64captch supports digit, number, alphabet, arithmetic, audio and
|
||
digit-alphabet captcha.</li>
|
||
<li><a href="https://github.com/bobg/basexx">basexx</a> - Convert to,
|
||
from, and between digit strings in various number bases.</li>
|
||
<li><a href="https://github.com/distatus/battery">battery</a> -
|
||
Cross-platform, normalized battery information library.</li>
|
||
<li><a href="https://github.com/icza/bitio">bitio</a> - Highly optimized
|
||
bit-level Reader and Writer for Go.</li>
|
||
<li><a href="https://github.com/digitalcrab/browscap_go">browscap_go</a>
|
||
- GoLang Library for <a href="https://browscap.org/">Browser
|
||
Capabilities Project</a>.</li>
|
||
<li><a href="https://github.com/steambap/captcha">captcha</a> - Package
|
||
captcha provides an easy to use, unopinionated API for captcha
|
||
generation.</li>
|
||
<li><a href="https://github.com/kubeservice-stack/common">common</a> - A
|
||
library for server framework.</li>
|
||
<li><a href="https://github.com/cstockton/go-conv">conv</a> - Package
|
||
conv provides fast and intuitive conversions across Go types.</li>
|
||
<li><a href="https://github.com/miolini/datacounter">datacounter</a> -
|
||
Go counters for readers/writer/http.ResponseWriter.</li>
|
||
<li><a href="https://github.com/neotoolkit/faker">faker</a> - Fake data
|
||
generator.</li>
|
||
<li><a href="https://github.com/pioz/faker">faker</a> - Random fake data
|
||
and struct generator for Go.</li>
|
||
<li><a href="https://github.com/go-ffmt/ffmt">ffmt</a> - Beautify data
|
||
display for Humans.</li>
|
||
<li><a href="https://github.com/TwinProduction/gatus">gatus</a> -
|
||
Automated service health dashboard.</li>
|
||
<li><a href="https://github.com/lana/go-commandbus">go-commandbus</a> -
|
||
A slight and pluggable command-bus for Go.</li>
|
||
<li><a
|
||
href="https://github.com/jolestar/go-commons-pool">go-commons-pool</a> -
|
||
Generic object pool for Golang.</li>
|
||
<li><a href="https://github.com/go-openapi">go-openapi</a> - Collection
|
||
of packages to parse and utilize open-api schemas.</li>
|
||
<li><a href="https://github.com/eapache/go-resiliency">go-resiliency</a>
|
||
- Resiliency patterns for golang.</li>
|
||
<li><a href="https://github.com/gen2brain/go-unarr">go-unarr</a> -
|
||
Decompression library for RAR, TAR, ZIP and 7z archives.</li>
|
||
<li><a href="https://github.com/brianvoe/gofakeit">gofakeit</a> - Random
|
||
data generator written in go.</li>
|
||
<li><a href="https://github.com/antham/gommit">gommit</a> - Analyze git
|
||
commit messages to ensure they follow defined patterns.</li>
|
||
<li><a href="https://github.com/shirou/gopsutil">gopsutil</a> -
|
||
Cross-platform library for retrieving process and system
|
||
utilization(CPU, Memory, Disks, etc).</li>
|
||
<li><a href="https://github.com/osamingo/gosh">gosh</a> - Provide Go
|
||
Statistics Handler, Struct, Measure Method.</li>
|
||
<li><a href="https://github.com/haxpax/gosms">gosms</a> - Your own local
|
||
SMS gateway in Go that can be used to send SMS.</li>
|
||
<li><a href="https://github.com/cabify/gotoprom">gotoprom</a> -
|
||
Type-safe metrics builder wrapper library for the official Prometheus
|
||
client.</li>
|
||
<li><a href="https://github.com/pariz/gountries">gountries</a> - Package
|
||
that exposes country and subdivision data.</li>
|
||
<li><a href="https://github.com/ddddddO/gtree">gtree</a> - Provide CLI,
|
||
Package and Web for tree output and directories creation from Markdown
|
||
or programmatically.</li>
|
||
<li><a href="https://github.com/alexliesenfeld/health">health</a> - A
|
||
simple and flexible health check library for Go.</li>
|
||
<li><a href="https://github.com/dimiro1/health">health</a> - Easy to
|
||
use, extensible health check library.</li>
|
||
<li><a href="https://github.com/etherlabsio/healthcheck">healthcheck</a>
|
||
- An opinionated and concurrent health-check HTTP handler for RESTful
|
||
services.</li>
|
||
<li><a href="https://github.com/Wing924/hostutils">hostutils</a> - A
|
||
golang library for packing and unpacking FQDNs list.</li>
|
||
<li><a href="https://github.com/osamingo/indigo">indigo</a> -
|
||
Distributed unique ID generator of using Sonyflake and encoded by
|
||
Base58.</li>
|
||
<li><a href="https://github.com/hyperboloide/lk">lk</a> - A simple
|
||
licensing library for golang.</li>
|
||
<li><a href="https://github.com/llir/llvm">llvm</a> - Library for
|
||
interacting with LLVM IR in pure Go.</li>
|
||
<li><a href="https://github.com/pascaldekloe/metrics">metrics</a> -
|
||
Library for metrics instrumentation and Prometheus exposition.</li>
|
||
<li><a href="https://github.com/alwindoss/morse">morse</a> - Library to
|
||
convert to and from morse code.</li>
|
||
<li><a href="https://github.com/lrita/numa">numa</a> - NUMA is a utility
|
||
library, which is written in go. It help us to write some NUMA-AWARED
|
||
code.</li>
|
||
<li><a href="https://github.com/neotoolkit/openapi">openapi</a> -
|
||
OpenAPI 3.x parser.</li>
|
||
<li><a href="https://github.com/hyperboloide/pdfgen">pdfgen</a> - HTTP
|
||
service to generate PDF from Json requests.</li>
|
||
<li><a href="https://github.com/mavihq/persian">persian</a> - Some
|
||
utilities for Persian language in go.</li>
|
||
<li><a href="https://github.com/aofei/sandid">sandid</a> - Every grain
|
||
of sand on earth has its own ID.</li>
|
||
<li><a href="https://github.com/Wing924/shellwords">shellwords</a> - A
|
||
Golang library to manipulate strings according to the word parsing rules
|
||
of the UNIX Bourne shell.</li>
|
||
<li><a href="https://github.com/teris-io/shortid">shortid</a> -
|
||
Distributed generation of super short, unique, non-sequential, URL
|
||
friendly IDs.</li>
|
||
<li><a href="https://github.com/containrrr/shoutrrr">shoutrrr</a> -
|
||
Notification library providing easy access to various messaging services
|
||
like slack, mattermost, gotify and smtp among others.</li>
|
||
<li><a
|
||
href="https://github.com/mingard/sitemap-format">sitemap-format</a> - A
|
||
simple sitemap generator, with a little syntactic sugar.</li>
|
||
<li><a href="https://github.com/qmuntal/stateless">stateless</a> - A
|
||
fluent library for creating state machines.</li>
|
||
<li><a href="https://github.com/go-playground/stats">stats</a> -
|
||
Monitors Go MemStats + System stats such as Memory, Swap and CPU and
|
||
sends via UDP anywhere you want for logging etc…</li>
|
||
<li><a href="https://github.com/hackebrot/turtle">turtle</a> - Emojis
|
||
for Go.</li>
|
||
<li><a href="https://github.com/pantrif/url-shortener">url-shortener</a>
|
||
- A modern, powerful, and robust URL shortener microservice with mysql
|
||
support.</li>
|
||
<li><a
|
||
href="https://github.com/azr/generators/tree/master/varhandler">VarHandler</a>
|
||
- Generate boilerplate http input and output handling.</li>
|
||
<li><a href="https://github.com/chmike/varint">varint</a> - A faster
|
||
varying length integer encoder/decoder than the one provided in the
|
||
standard library.</li>
|
||
<li><a href="https://github.com/rkoesters/xdg">xdg</a> - FreeDesktop.org
|
||
(xdg) Specs implemented in Go.</li>
|
||
<li><a href="https://github.com/go-xkg/xkg">xkg</a> - X Keyboard
|
||
Grabber.</li>
|
||
<li><a href="https://github.com/ulikunitz/xz">xz</a> - Pure golang
|
||
package for reading and writing xz-compressed files.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="natural-language-processing">Natural Language Processing</h2>
|
||
<p><em>Libraries for working with human languages.</em></p>
|
||
<p>See also <a href="#text-processing">Text Processing</a> and <a
|
||
href="#text-analysis">Text Analysis</a>.</p>
|
||
<h3 id="language-detection">Language Detection</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/detectlanguage/detectlanguage-go">detectlanguage</a>
|
||
- Language Detection API Go Client. Supports batch requests, short
|
||
phrase or single word language detection.</li>
|
||
<li><a href="https://github.com/rylans/getlang">getlang</a> - Fast
|
||
natural language detection package.</li>
|
||
<li><a
|
||
href="https://github.com/endeveit/guesslanguage">guesslanguage</a> -
|
||
Functions to determine the natural language of a unicode text.</li>
|
||
<li><a href="https://github.com/abadojack/whatlanggo">whatlanggo</a> -
|
||
Natural language detection package for Go. Supports 84 languages and 24
|
||
scripts (writing systems e.g. Latin, Cyrillic, etc).</li>
|
||
</ul>
|
||
<h3 id="morphological-analyzers">Morphological Analyzers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/agonopol/go-stem">go-stem</a> -
|
||
Implementation of the porter stemming algorithm.</li>
|
||
<li><a href="https://github.com/danieldk/go2vec">go2vec</a> - Reader and
|
||
utility functions for word2vec embeddings.</li>
|
||
<li><a
|
||
href="https://github.com/rjohnsondev/golibstemmer">golibstemmer</a> - Go
|
||
bindings for the snowball libstemmer library including porter 2.</li>
|
||
<li><a
|
||
href="https://github.com/dinopuguh/gosentiwordnet">gosentiwordnet</a> -
|
||
Sentiment analyzer using sentiwordnet lexicon in Go.</li>
|
||
<li><a href="https://github.com/jonreiter/govader">govader</a> - Go
|
||
implementation of <a
|
||
href="https://github.com/cjhutto/vaderSentiment">VADER Sentiment
|
||
Analysis</a>.</li>
|
||
<li><a
|
||
href="https://github.com/PIMPfiction/govader_backend">govader-backend</a>
|
||
- Microservice implementation of <a
|
||
href="https://github.com/jonreiter/govader">GoVader</a>.</li>
|
||
<li><a href="https://github.com/ikawaha/kagome">kagome</a> - JP
|
||
morphological analyzer written in pure Go.</li>
|
||
<li><a href="https://github.com/goodsign/libtextcat">libtextcat</a> -
|
||
Cgo binding for libtextcat C library. Guaranteed compatibility with
|
||
version 2.2.</li>
|
||
<li><a href="https://github.com/Shixzie/nlp">nlp</a> - Extract values
|
||
from strings and fill your structs with nlp.</li>
|
||
<li><a href="https://github.com/james-bowman/nlp">nlp</a> - Go Natural
|
||
Language Processing library supporting LSA (Latent Semantic
|
||
Analysis).</li>
|
||
<li><a href="https://github.com/rookii/paicehusk">paicehusk</a> - Golang
|
||
implementation of the Paice/Husk Stemming Algorithm.</li>
|
||
<li><a href="https://github.com/a2800276/porter">porter</a> - This is a
|
||
fairly straightforward port of Martin Porter’s C implementation of the
|
||
Porter stemming algorithm.</li>
|
||
<li><a href="https://github.com/zhenjl/porter2">porter2</a> - Really
|
||
fast Porter 2 stemmer.</li>
|
||
<li><a href="https://github.com/afjoseph/RAKE.Go">RAKE.go</a> - Go port
|
||
of the Rapid Automatic Keyword Extraction Algorithm (RAKE).</li>
|
||
<li><a href="https://github.com/goodsign/snowball">snowball</a> -
|
||
Snowball stemmer port (cgo wrapper) for Go. Provides word stem
|
||
extraction functionality <a
|
||
href="http://snowball.tartarus.org/">Snowball native</a>.</li>
|
||
<li><a href="https://github.com/nlpodyssey/spago">spaGO</a> -
|
||
Self-contained Machine Learning and Natural Language Processing library
|
||
in Go.</li>
|
||
<li><a
|
||
href="https://github.com/jorelosorio/spellingcorrector">spelling-corrector</a>
|
||
- A spelling corrector for the Spanish language or create your own.</li>
|
||
</ul>
|
||
<h3 id="slugifiers">Slugifiers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/mozillazg/go-slugify">go-slugify</a> -
|
||
Make pretty slug with multiple languages support.</li>
|
||
<li><a href="https://github.com/gosimple/slug">slug</a> - URL-friendly
|
||
slugify with multiple languages support.</li>
|
||
<li><a href="https://github.com/avelino/slugify">Slugify</a> - Go
|
||
slugify application that handles string.</li>
|
||
</ul>
|
||
<h3 id="tokenizers">Tokenizers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/yanyiwu/gojieba">gojieba</a> - This is a
|
||
Go implementation of <a href="https://github.com/fxsjy/jieba">jieba</a>
|
||
which a Chinese word splitting algorithm.</li>
|
||
<li><a href="https://github.com/xujiajun/gotokenizer">gotokenizer</a> -
|
||
A tokenizer based on the dictionary and Bigram language models for
|
||
Golang. (Now only support chinese segmentation)</li>
|
||
<li><a href="https://github.com/go-ego/gse">gse</a> - Go efficient text
|
||
segmentation; support english, chinese, japanese and other.</li>
|
||
<li><a href="https://github.com/awsong/MMSEGO">MMSEGO</a> - This is a GO
|
||
implementation of <a
|
||
href="http://technology.chtsai.org/mmseg/">MMSEG</a> which a Chinese
|
||
word splitting algorithm.</li>
|
||
<li><a href="https://github.com/jdkato/prose">prose</a> - Library for
|
||
text processing that supports tokenization, part-of-speech tagging,
|
||
named-entity extraction, and more. English only.</li>
|
||
<li><a href="https://github.com/blevesearch/segment">segment</a> - Go
|
||
library for performing Unicode Text Segmentation as described in <a
|
||
href="https://www.unicode.org/reports/tr29/">Unicode Standard Annex
|
||
#29</a></li>
|
||
<li><a href="https://github.com/neurosnap/sentences">sentences</a> -
|
||
Sentence tokenizer: converts text into a list of sentences.</li>
|
||
<li><a href="https://github.com/osamingo/shamoji">shamoji</a> - The
|
||
shamoji is word filtering package written in Go.</li>
|
||
<li><a href="https://github.com/dchest/stemmer">stemmer</a> - Stemmer
|
||
packages for Go programming language. Includes English and German
|
||
stemmers.</li>
|
||
<li><a href="https://github.com/pebbe/textcat">textcat</a> - Go package
|
||
for n-gram based text categorization, with support for utf-8 and raw
|
||
text.</li>
|
||
</ul>
|
||
<h3 id="translation">Translation</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/nicksnyder/go-i18n/">go-i18n</a> -
|
||
Package and an accompanying tool to work with localized text.</li>
|
||
<li><a href="https://github.com/m1/go-localize">go-localize</a> - Simple
|
||
and easy to use i18n (Internationalization and localization) engine -
|
||
used for translating locale strings.</li>
|
||
<li><a href="https://github.com/dveselov/mystem">go-mystem</a> - CGo
|
||
bindings to Yandex.Mystem - russian morphology analyzer.</li>
|
||
<li><a href="https://github.com/mozillazg/go-pinyin">go-pinyin</a> - CN
|
||
Hanzi to Hanyu Pinyin converter.</li>
|
||
<li><a href="https://github.com/saleh-rahimzadeh/go-words">go-words</a>
|
||
- A words table and text resource library for Golang projects.</li>
|
||
<li><a href="https://github.com/leonelquinteros/gotext">gotext</a> - GNU
|
||
gettext utilities for Go.</li>
|
||
<li><a href="https://github.com/goodsign/icu">icu</a> - Cgo binding for
|
||
icu4c C library detection and conversion functions. Guaranteed
|
||
compatibility with version 50.1.</li>
|
||
<li><a href="https://github.com/mehanizm/iuliia-go">iuliia-go</a> -
|
||
Transliterate Cyrillic → Latin in every possible way.</li>
|
||
<li><a href="https://github.com/vorlif/spreak">spreak</a> - Flexible
|
||
translation and humanization library for Go, based on the concepts
|
||
behind gettext.</li>
|
||
<li><a href="https://github.com/youthlin/t">t</a> - Another i18n pkg for
|
||
golang, which follows GNU gettext style and supports .po/.mo files:
|
||
<code>t.T (gettext)</code>, <code>t.N (ngettext)</code>, etc. And it
|
||
contains a cmd tool <a
|
||
href="https://github.com/youthlin/t/blob/main/cmd/xtemplate">xtemplate</a>,
|
||
which can extract messages as a pot file from text/html template.</li>
|
||
</ul>
|
||
<h3 id="transliteration">Transliteration</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/endeveit/enca">enca</a> - Minimal cgo
|
||
bindings for <a href="https://cihar.com/software/enca/">libenca</a>,
|
||
which detects character encodings.</li>
|
||
<li><a href="https://github.com/mozillazg/go-unidecode">go-unidecode</a>
|
||
- ASCII transliterations of Unicode text.</li>
|
||
<li><a href="https://github.com/fiam/gounidecode">gounidecode</a> -
|
||
Unicode transliterator (also known as unidecode) for Go.</li>
|
||
<li><a
|
||
href="https://github.com/alexsergivan/transliterator">transliterator</a>
|
||
- Provides one-way string transliteration with supporting of
|
||
language-specific transliteration rules.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="networking">Networking</h2>
|
||
<p><em>Libraries for working with various layers of the
|
||
network.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/mdlayher/arp">arp</a> - Package arp
|
||
implements the ARP protocol, as described in RFC 826.</li>
|
||
<li><a
|
||
href="https://github.com/stabbycutyou/buffstreams">buffstreams</a> -
|
||
Streaming protocolbuffer data over TCP made easy.</li>
|
||
<li><a href="https://github.com/zubairhamed/canopus">canopus</a> - CoAP
|
||
Client/Server implementation (RFC 7252).</li>
|
||
<li><a href="https://github.com/yl2chen/cidranger">cidranger</a> - Fast
|
||
IP to CIDR lookup for Go.</li>
|
||
<li><a href="https://github.com/mdlayher/dhcp6">dhcp6</a> - Package
|
||
dhcp6 implements a DHCPv6 server, as described in RFC 3315.</li>
|
||
<li><a href="https://github.com/miekg/dns">dns</a> - Go library for
|
||
working with DNS.</li>
|
||
<li><a href="https://github.com/mosajjal/dnsmonster">dnsmonster</a> -
|
||
Passive DNS Capture/Monitoring Framework.</li>
|
||
<li><a href="https://github.com/DarthPestilane/easytcp">easytcp</a> - 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.</li>
|
||
<li><a href="https://github.com/songgao/ether">ether</a> -
|
||
Cross-platform Go package for sending and receiving ethernet
|
||
frames.</li>
|
||
<li><a href="https://github.com/mdlayher/ethernet">ethernet</a> -
|
||
Package ethernet implements marshaling and unmarshalling of IEEE 802.3
|
||
Ethernet II frames and IEEE 802.1Q VLAN tags.</li>
|
||
<li><a href="https://github.com/cheng-zhongliang/event">event</a> -
|
||
Simple I/O event notification library written in Golang.</li>
|
||
<li><a href="https://github.com/valyala/fasthttp">fasthttp</a> - Package
|
||
fasthttp is a fast HTTP implementation for Go, up to 10 times faster
|
||
than net/http.</li>
|
||
<li><a href="https://github.com/fortio/fortio">fortio</a> - 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.</li>
|
||
<li><a href="https://github.com/jlaffaye/ftp">ftp</a> - Package ftp
|
||
implements a FTP client as described in <a
|
||
href="https://tools.ietf.org/html/rfc959">RFC 959</a>.</li>
|
||
<li><a href="https://github.com/fclairamb/ftpserverlib">ftpserverlib</a>
|
||
- Fully featured FTP server library.</li>
|
||
<li><a href="https://github.com/shoriwe/fullproxy">fullproxy</a> - A
|
||
fully featured scriptable and daemon configurable proxy and pivoting
|
||
toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols.</li>
|
||
<li><a href="https://github.com/xtaci/gaio">gaio</a> - High performance
|
||
async-io networking for Golang in proactor mode.</li>
|
||
<li><a href="https://github.com/Allenxuxu/gev">gev</a> - gev is a
|
||
lightweight, fast non-blocking TCP network library based on Reactor
|
||
mode.</li>
|
||
<li><a href="https://github.com/jimlambrt/gldap">gldap</a> - gldap
|
||
provides an ldap server implementation and you provide handlers for its
|
||
ldap operations.</li>
|
||
<li><a href="https://github.com/DrmagicE/gmqtt">gmqtt</a> - Gmqtt is a
|
||
flexible, high-performance MQTT broker library that fully implements the
|
||
MQTT protocol V3.1.1.</li>
|
||
<li><a href="https://github.com/panjf2000/gnet">gnet</a> -
|
||
<code>gnet</code> is a high-performance, lightweight, non-blocking,
|
||
event-driven networking framework written in pure Go.</li>
|
||
<li><a href="https://github.com/fish-tennis/gnet">gnet</a> -
|
||
<code>gnet</code> is a high-performance networking framework,especially
|
||
for game servers.</li>
|
||
<li><a href="https://github.com/google/gnxi">gNxI</a> - A collection of
|
||
tools for Network Management that use the gNMI and gNOI protocols.</li>
|
||
<li><a href="https://github.com/hashicorp/go-getter">go-getter</a> - Go
|
||
library for downloading files or directories from various sources using
|
||
a URL.</li>
|
||
<li><a href="https://github.com/joeig/go-powerdns">go-powerdns</a> -
|
||
PowerDNS API bindings for Golang.</li>
|
||
<li><a href="https://github.com/lampctl/go-sse">go-sse</a> - Go client
|
||
and server implementation of HTML server-sent events.</li>
|
||
<li><a href="https://github.com/ccding/go-stun">go-stun</a> - Go
|
||
implementation of the STUN client (RFC 3489 and RFC 5389).</li>
|
||
<li><a href="https://github.com/osrg/gobgp">gobgp</a> - BGP implemented
|
||
in the Go Programming Language.</li>
|
||
<li><a
|
||
href="https://github.com/sunwxg/golibwireshark">golibwireshark</a> -
|
||
Package golibwireshark use libwireshark library to decode pcap file and
|
||
analyse dissection data.</li>
|
||
<li><a href="https://github.com/google/gopacket">gopacket</a> - Go
|
||
library for packet processing with libpcap bindings.</li>
|
||
<li><a href="https://github.com/akrennmair/gopcap">gopcap</a> - Go
|
||
wrapper for libpcap.</li>
|
||
<li><a href="https://github.com/sunwxg/goshark">goshark</a> - Package
|
||
goshark use tshark to decode IP packet and create data struct to analyse
|
||
packet.</li>
|
||
<li><a href="https://github.com/soniah/gosnmp">gosnmp</a> - Native Go
|
||
library for performing SNMP actions.</li>
|
||
<li><a href="https://github.com/gansidui/gotcp">gotcp</a> - Go package
|
||
for quickly writing tcp applications.</li>
|
||
<li><a href="https://github.com/cavaliercoder/grab">grab</a> - Go
|
||
package for managing file downloads.</li>
|
||
<li><a href="https://github.com/koofr/graval">graval</a> - Experimental
|
||
FTP server framework.</li>
|
||
<li><a href="https://github.com/lxzan/gws">gws</a> - High-Performance
|
||
WebSocket Server & Client With AsyncIO Supporting .</li>
|
||
<li><a href="https://github.com/gchaincl/httplab">HTTPLab</a> - HTTPLabs
|
||
let you inspect HTTP requests and forge responses.</li>
|
||
<li><a href="https://github.com/wzshiming/httpproxy">httpproxy</a> -
|
||
HTTP proxy handler and dialer.</li>
|
||
<li><a href="https://github.com/c-robinson/iplib">iplib</a> - Library
|
||
for working with IP addresses (net.IP, net.IPNet), inspired by python <a
|
||
href="https://docs.python.org/3/library/ipaddress.html">ipaddress</a>
|
||
and ruby <a
|
||
href="https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html">ipaddr</a></li>
|
||
<li><a href="https://github.com/udhos/jazigo">jazigo</a> - Jazigo is a
|
||
tool written in Go for retrieving configuration for multiple network
|
||
devices.</li>
|
||
<li><a href="https://github.com/xtaci/kcp-go">kcp-go</a> - KCP - Fast
|
||
and Reliable ARQ Protocol.</li>
|
||
<li><a href="https://github.com/xtaci/kcptun">kcptun</a> - Extremely
|
||
simple & fast udp tunnel based on KCP protocol.</li>
|
||
<li><a href="https://github.com/fanux/lhttp">lhttp</a> - Powerful
|
||
websocket framework, build your IM server more easily.</li>
|
||
<li><a href="https://github.com/ian-kent/linkio">linkio</a> - Network
|
||
link speed simulation for Reader/Writer interfaces.</li>
|
||
<li><a href="https://github.com/kirillDanshin/llb">llb</a> - 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.</li>
|
||
<li><a href="https://github.com/hashicorp/mdns">mdns</a> - Simple mDNS
|
||
(Multicast DNS) client/server library in Golang.</li>
|
||
<li><a href="https://eclipse.org/paho/clients/golang/">mqttPaho</a> -
|
||
The Paho Go Client provides an MQTT client library for connection to
|
||
MQTT brokers via TCP, TLS or WebSockets.</li>
|
||
<li><a href="https://github.com/soypat/natiu-mqtt">natiu-mqtt</a> - A
|
||
dead-simple, non-allocating, low level implementation of MQTT well
|
||
suited for embedded systems.</li>
|
||
<li><a href="https://github.com/lesismal/nbio">nbio</a> - 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.</li>
|
||
<li><a href="https://github.com/cloudwego/netpoll">netpoll</a> - A
|
||
high-performance non-blocking I/O networking framework, which focused on
|
||
RPC scenarios, developed by ByteDance.</li>
|
||
<li><a href="https://github.com/intel-go/nff-go">NFF-Go</a> - Framework
|
||
for rapid development of performant network functions for cloud and
|
||
bare-metal (former YANFF).</li>
|
||
<li><a href="https://github.com/aerogo/packet">packet</a> - Send packets
|
||
over TCP and UDP. It can buffer messages and hot-swap connections if
|
||
needed.</li>
|
||
<li><a href="https://github.com/schollz/peerdiscovery">peerdiscovery</a>
|
||
- Pure Go library for cross-platform local peer discovery using UDP
|
||
multicast.</li>
|
||
<li><a href="https://github.com/aybabtme/portproxy">portproxy</a> -
|
||
Simple TCP proxy which adds CORS support to API’s which don’t support
|
||
it.</li>
|
||
<li><a href="https://github.com/polera/publicip">publicip</a> - Package
|
||
publicip returns your public facing IPv4 address (internet egress).</li>
|
||
<li><a href="https://github.com/lucas-clemente/quic-go">quic-go</a> - An
|
||
implementation of the QUIC protocol in pure Go.</li>
|
||
<li><a href="https://github.com/mdlayher/raw">raw</a> - Package raw
|
||
enables reading and writing data at the device driver level for a
|
||
network interface.</li>
|
||
<li><a href="https://github.com/pkg/sftp">sftp</a> - Package sftp
|
||
implements the SSH File Transfer Protocol as described in <a
|
||
href="https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt"
|
||
class="uri">https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt</a>.</li>
|
||
<li><a href="https://github.com/gliderlabs/ssh">ssh</a> - Higher-level
|
||
API for building SSH servers (wraps crypto/ssh).</li>
|
||
<li><a href="https://github.com/eduardonunesp/sslb">sslb</a> - It’s a
|
||
Super Simples Load Balancer, just a little project to achieve some kind
|
||
of performance.</li>
|
||
<li><a href="https://github.com/go-rtc/stun">stun</a> - Go
|
||
implementation of RFC 5389 STUN protocol.</li>
|
||
<li><a href="https://github.com/firstrow/tcp_server">tcp_server</a> - Go
|
||
library for building tcp servers faster.</li>
|
||
<li><a href="https://github.com/lim-yoona/tcpack">tcpack</a> - tcpack is
|
||
an application protocol based on TCP to Pack and Unpack bytes stream in
|
||
go program.</li>
|
||
<li><a href="https://github.com/two/tspool">tspool</a> - A TCP Library
|
||
use worker pool to improve performance and protect your server.</li>
|
||
<li><a href="https://github.com/anacrolix/utp">utp</a> - Go uTP micro
|
||
transport protocol implementation.</li>
|
||
<li><a href="https://github.com/yahoo/vssh">vssh</a> - Go library for
|
||
building network and server automation over SSH protocol.</li>
|
||
<li><a href="https://github.com/songgao/water">water</a> - Simple
|
||
TUN/TAP library.</li>
|
||
<li><a href="https://github.com/pions/webrtc">webrtc</a> - A pure Go
|
||
implementation of the WebRTC API.</li>
|
||
<li><a href="https://github.com/masterzen/winrm">winrm</a> - Go WinRM
|
||
client to remotely execute commands on Windows machines.</li>
|
||
<li><a href="https://github.com/xfxdev/xtcp">xtcp</a> - TCP Server
|
||
Framework with simultaneous full duplex communication, graceful
|
||
shutdown, and custom protocol.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="http-clients">HTTP Clients</h3>
|
||
<p><em>Libraries for making HTTP requests.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/opus-domini/fast-shot">fast-shot</a> -
|
||
Hit your API targets with rapid-fire precision using Go’s fastest and
|
||
simple HTTP Client.</li>
|
||
<li><a href="https://github.com/h2non/gentleman">gentleman</a> -
|
||
Full-featured plugin-driven HTTP client library.</li>
|
||
<li><a href="https://github.com/hashicorp/go-cleanhttp">go-cleanhttp</a>
|
||
- Get easily stdlib HTTP client, which does not share any state with
|
||
other clients.</li>
|
||
<li><a
|
||
href="https://github.com/bozd4g/go-http-client">go-http-client</a> -
|
||
Make http calls simply and easily.</li>
|
||
<li><a
|
||
href="https://github.com/NdoleStudio/go-otelroundtripper">go-otelroundtripper</a>
|
||
- Go http.RoundTripper that emits open telemetry metrics for HTTP
|
||
requests.</li>
|
||
<li><a href="https://github.com/wenerme/go-req">go-req</a> - Declarative
|
||
golang HTTP client.</li>
|
||
<li><a
|
||
href="https://github.com/hashicorp/go-retryablehttp">go-retryablehttp</a>
|
||
- Retryable HTTP client in Go.</li>
|
||
<li><a href="https://github.com/go-zoox/fetch">go-zoox/fetch</a> - A
|
||
Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.</li>
|
||
<li><a href="https://github.com/levigross/grequests">grequests</a> - A
|
||
Go “clone” of the great and famous Requests library.</li>
|
||
<li><a href="https://github.com/gojektech/heimdall">heimdall</a> - An
|
||
enhanced http client with retry and hystrix capabilities.</li>
|
||
<li><a href="https://github.com/ybbus/httpretry">httpretry</a> -
|
||
Enriches the default go HTTP client with retry functionality.</li>
|
||
<li><a href="https://github.com/sethgrid/pester">pester</a> - Go HTTP
|
||
client calls with retries, backoff, and concurrency.</li>
|
||
<li><a href="https://github.com/imroc/req">req</a> - Simple Go HTTP
|
||
client with Black Magic (Less code and More efficiency).</li>
|
||
<li><a href="https://github.com/monaco-io/request">request</a> - HTTP
|
||
client for golang. If you have experience about axios or requests, you
|
||
will love it. No 3rd dependency.</li>
|
||
<li><a href="https://github.com/carlmjohnson/requests">requests</a> -
|
||
HTTP requests for Gophers. Uses context.Context and doesn’t hide the
|
||
underlying net/http.Client, making it compatible with standard Go APIs.
|
||
Also includes testing tools.</li>
|
||
<li><a href="https://github.com/go-resty/resty">resty</a> - Simple HTTP
|
||
and REST client for Go inspired by Ruby rest-client.</li>
|
||
<li><a href="https://github.com/ddo/rq">rq</a> - A nicer interface for
|
||
golang stdlib HTTP client.</li>
|
||
<li><a href="https://github.com/dghubble/sling">sling</a> - Sling is a
|
||
Go HTTP client library for creating and sending API requests.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="opengl">OpenGL</h2>
|
||
<p><em>Libraries for using OpenGL in Go.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/go-gl/gl">gl</a> - Go bindings for
|
||
OpenGL (generated via glow).</li>
|
||
<li><a href="https://github.com/go-gl/glfw">glfw</a> - Go bindings for
|
||
GLFW 3.</li>
|
||
<li><a href="https://github.com/technohippy/go-glmatrix">go-glmatrix</a>
|
||
- Go port of <a href="https://glmatrix.net/">glMatrix</a> library.</li>
|
||
<li><a href="https://github.com/goxjs/gl">goxjs/gl</a> - Go
|
||
cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS,
|
||
Android).</li>
|
||
<li><a href="https://github.com/goxjs/glfw">goxjs/glfw</a> - Go
|
||
cross-platform glfw library for creating an OpenGL context and receiving
|
||
events.</li>
|
||
<li><a href="https://github.com/go-gl/mathgl">mathgl</a> - Pure Go math
|
||
package specialized for 3D math, with inspiration from GLM.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="orm">ORM</h2>
|
||
<p><em>Libraries that implement Object-Relational Mapping or datamapping
|
||
techniques.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/uptrace/bun">bun</a> - SQL-first Golang
|
||
ORM. Successor of go-pg.</li>
|
||
<li><a href="https://github.com/Yiling-J/cacheme-go">cacheme</a> -
|
||
Schema based, typed Redis caching/memoize framework for Go.</li>
|
||
<li><a href="https://github.com/FrancoLiberali/cql">CQL</a> - Built on
|
||
top of GORM, adds compile-time verified queries based on auto-generated
|
||
code.</li>
|
||
<li><a href="https://github.com/facebook/ent">ent</a> - An entity
|
||
framework for Go. Simple, yet powerful ORM for modeling and querying
|
||
data.</li>
|
||
<li><a href="https://github.com/hashicorp/go-dbw">go-dbw</a> - A simple
|
||
package that encapsulates database operations.</li>
|
||
<li><a href="https://github.com/jschoedt/go-firestorm">go-firestorm</a>
|
||
- A simple ORM for Google/Firebase Cloud Firestore.</li>
|
||
<li><a href="https://github.com/rushteam/gosql">go-sql</a> - A easy ORM
|
||
for mysql.</li>
|
||
<li><a href="https://github.com/huandu/go-sqlbuilder">go-sqlbuilder</a>
|
||
- A flexible and powerful SQL string builder library plus a zero-config
|
||
ORM.</li>
|
||
<li><a href="https://github.com/gosuri/go-store">go-store</a> - Simple
|
||
and fast Redis backed key-value store library for Go.</li>
|
||
<li><a href="https://github.com/golobby/orm">golobby/orm</a> - Simple,
|
||
fast, type-safe, generic orm for developer happiness.</li>
|
||
<li><a href="https://github.com/go-gorm/gorm">GORM</a> - The fantastic
|
||
ORM library for Golang, aims to be developer friendly.</li>
|
||
<li><a href="https://github.com/xxjwxc/gormt">gormt</a> - Mysql database
|
||
to golang gorm struct.</li>
|
||
<li><a href="https://github.com/go-gorp/gorp">gorp</a> - Go Relational
|
||
Persistence, ORM-ish library for Go.</li>
|
||
<li><a href="https://github.com/Fs02/grimoire">grimoire</a> - Grimoire
|
||
is a database access layer and validation for golang. (Support: MySQL,
|
||
PostgreSQL and SQLite3).</li>
|
||
<li><a href="https://github.com/abrahambotros/lore">lore</a> - Simple
|
||
and lightweight pseudo-ORM/pseudo-struct-mapping environment for
|
||
Go.</li>
|
||
<li><a href="https://github.com/marlow/marlow">marlow</a> - Generated
|
||
ORM from project structs for compile time safety assurances.</li>
|
||
<li><a href="https://github.com/gobuffalo/pop">pop/soda</a> - Database
|
||
migration, creation, ORM, etc… for MySQL, PostgreSQL, and SQLite.</li>
|
||
<li><a href="https://github.com/prisma/prisma-client-go">Prisma</a> -
|
||
Prisma Client Go, Typesafe database access for Go.</li>
|
||
<li><a href="https://github.com/go-reform/reform">reform</a> - Better
|
||
ORM for Go, based on non-empty interfaces and code generation.</li>
|
||
<li><a href="https://github.com/go-rel/rel">rel</a> - Modern Database
|
||
Access Layer for Golang - Testable, Extendable and Crafted Into a Clean
|
||
and Elegant API.</li>
|
||
<li><a href="https://github.com/volatiletech/sqlboiler">SQLBoiler</a> -
|
||
ORM generator. Generate a featureful and blazing-fast ORM tailored to
|
||
your database schema.</li>
|
||
<li><a href="https://github.com/upper/db">upper.io/db</a> - Single
|
||
interface for interacting with different data sources through the use of
|
||
adapters that wrap mature database drivers.</li>
|
||
<li><a href="https://gitea.com/xorm/xorm">XORM</a> - Simple and powerful
|
||
ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql
|
||
and Oracle).</li>
|
||
<li><a href="https://github.com/albrow/zoom">Zoom</a> - Blazing-fast
|
||
datastore and querying engine built on Redis.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="package-management">Package Management</h2>
|
||
<p><em>Official tooling for dependency and package management</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more">go
|
||
modules</a> - Modules are the unit of source code interchange and
|
||
versioning. The go command has direct support for working with modules,
|
||
including recording and resolving dependencies on other modules.</li>
|
||
</ul>
|
||
<p><em>Official experimental tooling for package management</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/golang/dep">dep</a> - Go dependency
|
||
tool.</li>
|
||
<li><a href="https://go.googlesource.com/vgo/">vgo</a> - Versioned
|
||
Go.</li>
|
||
</ul>
|
||
<p><em>Unofficial libraries for package and dependency
|
||
management.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/Masterminds/glide">glide</a> - Manage
|
||
your golang vendor and vendored packages with ease. Inspired by tools
|
||
like Maven, Bundler, and Pip.</li>
|
||
<li><a href="https://github.com/tools/godep">godep</a> - dependency tool
|
||
for go, godep helps build packages reproducibly by fixing their
|
||
dependencies.</li>
|
||
<li><a href="https://github.com/mattn/gom">gom</a> - Go Manager - bundle
|
||
for go.</li>
|
||
<li><a href="https://github.com/nitrous-io/goop">goop</a> - Simple
|
||
dependency manager for Go (golang), inspired by Bundler.</li>
|
||
<li><a href="https://github.com/lunny/gop">gop</a> - Build and manage
|
||
your Go applications out of GOPATH.</li>
|
||
<li><a href="https://github.com/gpmgo/gopm">gopm</a> - Go Package
|
||
Manager.</li>
|
||
<li><a href="https://github.com/kardianos/govendor">govendor</a> - Go
|
||
Package Manager. Go vendor tool that works with the standard vendor
|
||
file.</li>
|
||
<li><a href="https://github.com/pote/gpm">gpm</a> - Barebones dependency
|
||
manager for Go.</li>
|
||
<li><a href="https://github.com/nao1215/gup">gup</a> - Update binaries
|
||
installed by “go install”.</li>
|
||
<li><a href="https://github.com/VividCortex/johnny-deps">johnny-deps</a>
|
||
- Minimal dependency version using Git.</li>
|
||
<li><a href="https://github.com/lucasepe/modgv">modgv</a> - Converts ‘go
|
||
mod graph’ output into Graphviz’s DOT language.</li>
|
||
<li><a href="https://github.com/raydac/mvn-golang">mvn-golang</a> -
|
||
plugin that provides way for auto-loading of Golang SDK, dependency
|
||
management and start build environment in Maven project
|
||
infrastructure.</li>
|
||
<li><a href="https://github.com/jingweno/nut">nut</a> - Vendor Go
|
||
dependencies.</li>
|
||
<li><a href="https://github.com/DamnWidget/VenGO">VenGO</a> - create and
|
||
manage exportable isolated go virtual environments.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="performance">Performance</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/nikolaydubina/go-instrument">go-instrument</a>
|
||
- Automatically add spans to all methods and functions.</li>
|
||
<li><a href="https://github.com/jaegertracing/jaeger">jaeger</a> - A
|
||
distributed tracing system.</li>
|
||
<li><a href="https://github.com/pixie-labs/pixie">pixie</a> - No
|
||
instrumentation tracing for Golang applications via eBPF.</li>
|
||
<li><a href="https://github.com/pkg/profile">profile</a> - Simple
|
||
profiling support package for Go.</li>
|
||
<li><a href="https://github.com/arl/statsviz">statsviz</a> - Live
|
||
visualization of your Go application runtime statistics.</li>
|
||
<li><a href="https://github.com/kamilsk/tracer">tracer</a> - Simple,
|
||
lightweight tracing.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="query-language">Query Language</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ccbrown/api-fu">api-fu</a> -
|
||
Comprehensive GraphQL implementation.</li>
|
||
<li><a href="https://github.com/tomwright/dasel">dasel</a> - Query and
|
||
update data structures using selectors from the command line. Comparable
|
||
to jq/yq but supports JSON, YAML, TOML and XML with zero runtime
|
||
dependencies.</li>
|
||
<li><a href="https://github.com/thedevsaddam/gojsonq">gojsonq</a> - A
|
||
simple Go package to Query over JSON Data.</li>
|
||
<li><a href="https://github.com/SeldonIO/goven">goven</a> - A drop-in
|
||
query language for any database schema.</li>
|
||
<li><a href="https://github.com/99designs/gqlgen">gqlgen</a> - go
|
||
generate based graphql server library.</li>
|
||
<li><a href="https://github.com/reaganiwadha/grapher">grapher</a> - A
|
||
GraphQL field builder utilizing Go generics with extra utilities and
|
||
features.</li>
|
||
<li><a href="https://github.com/tmc/graphql">graphql</a> - graphql
|
||
parser + utilities.</li>
|
||
<li><a href="https://github.com/neelance/graphql-go">graphql</a> -
|
||
GraphQL server with a focus on ease of use.</li>
|
||
<li><a href="https://github.com/graphql-go/graphql">graphql-go</a> -
|
||
Implementation of GraphQL for Go.</li>
|
||
<li><a href="https://github.com/Zaba505/gws">gws</a> - Apollos’ “GraphQL
|
||
over Websocket” client and server implementation.</li>
|
||
<li><a href="https://github.com/AsaiYusuke/jsonpath">jsonpath</a> - A
|
||
query library for retrieving part of JSON based on JSONPath syntax.</li>
|
||
<li><a href="https://github.com/elgs/jsonql">jsonql</a> - JSON query
|
||
expression library in Golang.</li>
|
||
<li><a href="https://github.com/bhmj/jsonslice">jsonslice</a> - Jsonpath
|
||
queries with advanced filters.</li>
|
||
<li><a href="https://github.com/hashicorp/mql">mql</a> - Model Query
|
||
Language (mql) is a query language for your database models.</li>
|
||
<li><a href="https://github.com/a8m/rql">rql</a> - Resource Query
|
||
Language for REST API.</li>
|
||
<li><a href="https://github.com/timsolov/rest-query-parser">rqp</a> -
|
||
Query Parser for REST API. Filtering, validations, both
|
||
<code>AND</code>, <code>OR</code> operations are supported directly in
|
||
the query.</li>
|
||
<li><a href="https://github.com/SonicRoshan/straf">straf</a> - Easily
|
||
Convert Golang structs to GraphQL objects.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="resource-embedding">Resource Embedding</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/leaanthony/debme">debme</a> - Create an
|
||
<code>embed.FS</code> from an existing <code>embed.FS</code>
|
||
subdirectory.</li>
|
||
<li><a href="https://github.com/mjibson/esc">esc</a> - Embeds files into
|
||
Go programs and provides http.FileSystem interfaces to them.</li>
|
||
<li><a href="https://github.com/UnnoTed/fileb0x">fileb0x</a> - Simple
|
||
tool to embed files in go with focus on “customization” and ease to
|
||
use.</li>
|
||
<li><a href="https://github.com/omeid/go-resources">go-resources</a> -
|
||
Unfancy resources embedding with Go.</li>
|
||
<li><a href="https://github.com/GeertJohan/go.rice">go.rice</a> -
|
||
go.rice is a Go package that makes working with resources such as HTML,
|
||
JS, CSS, images, and templates very easy.</li>
|
||
<li><a href="https://github.com/wlbr/mule">mule</a> - Embed external
|
||
resources like images, movies … into Go source code to create single
|
||
file binaries using <code>go generate</code>. Focused on
|
||
simplicity.</li>
|
||
<li><a href="https://github.com/gobuffalo/packr">packr</a> - The simple
|
||
and easy way to embed static files into Go binaries.</li>
|
||
<li><a href="https://github.com/soypat/rebed">rebed</a> - Recreate
|
||
folder structures and files from Go 1.16’s <code>embed.FS</code>
|
||
type</li>
|
||
<li><a href="https://github.com/go-playground/statics">statics</a> -
|
||
Embeds static resources into go files for single binary compilation +
|
||
works with http.FileSystem + symlinks.</li>
|
||
<li><a href="https://github.com/rakyll/statik">statik</a> - Embeds
|
||
static files into a Go executable.</li>
|
||
<li><a href="https://github.com/wlbr/templify">templify</a> - Embed
|
||
external template files into Go code to create single file
|
||
binaries.</li>
|
||
<li><a href="https://github.com/shurcooL/vfsgen">vfsgen</a> - Generates
|
||
a vfsdata.go file that statically implements the given virtual
|
||
filesystem.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="science-and-data-analysis">Science and Data Analysis</h2>
|
||
<p><em>Libraries for scientific computing and data analyzing.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/ndabAP/assocentity">assocentity</a> -
|
||
Package assocentity returns the average distance from words to a given
|
||
entity.</li>
|
||
<li><a href="https://github.com/seanhagen/bradleyterry">bradleyterry</a>
|
||
- Provides a Bradley-Terry Model for pairwise comparisons.</li>
|
||
<li><a
|
||
href="https://github.com/nikolaydubina/calendarheatmap">calendarheatmap</a>
|
||
- Calendar heatmap in plain Go inspired by Github contribution
|
||
activity.</li>
|
||
<li><a href="https://github.com/vdobler/chart">chart</a> - Simple Chart
|
||
Plotting library for Go. Supports many graphs types.</li>
|
||
<li><a
|
||
href="https://github.com/rocketlaunchr/dataframe-go">dataframe-go</a> -
|
||
Dataframes for machine-learning and statistics (similar to pandas).</li>
|
||
<li><a href="https://github.com/db47h/decimal">decimal</a> - Package
|
||
decimal implements arbitrary-precision decimal floating-point
|
||
arithmetic.</li>
|
||
<li><a href="https://github.com/soniah/evaler">evaler</a> - Simple
|
||
floating point arithmetic expression evaluator.</li>
|
||
<li><a href="https://github.com/VividCortex/ewma">ewma</a> -
|
||
Exponentially-weighted moving averages.</li>
|
||
<li><a href="https://github.com/skelterjohn/geom">geom</a> - 2D geometry
|
||
for golang.</li>
|
||
<li><a href="https://github.com/mjibson/go-dsp">go-dsp</a> - Digital
|
||
Signal Processing for Go.</li>
|
||
<li><a href="https://github.com/milosgajdos/go-estimate">go-estimate</a>
|
||
- State estimation and filtering algorithms in Go.</li>
|
||
<li><a href="https://github.com/ThePaw/go-gt">go-gt</a> - Graph theory
|
||
algorithms written in “Go” language.</li>
|
||
<li><a href="https://github.com/soypat/godesim">godesim</a> -
|
||
Extended/multivariable ODE solver framework for event-based simulations
|
||
with simple API.</li>
|
||
<li><a href="https://github.com/kzahedi/goent">goent</a> - GO
|
||
Implementation of Entropy Measures.</li>
|
||
<li><a href="https://github.com/hmdsefi/gograph">gograph</a> - A golang
|
||
generic graph library that provides mathematical graph-theory and
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/VividCortex/gohistogram">gohistogram</a>
|
||
- Approximate histograms for data streams.</li>
|
||
<li><a href="https://github.com/gonum/gonum">gonum</a> - Gonum is a set
|
||
of numeric libraries for the Go programming language. It contains
|
||
libraries for matrices, statistics, optimization, and more.</li>
|
||
<li><a href="https://github.com/gonum/plot">gonum/plot</a> - gonum/plot
|
||
provides an API for building and drawing plots in Go.</li>
|
||
<li><a href="https://github.com/gyuho/goraph">goraph</a> - Pure Go graph
|
||
theory library(data structure, algorithm visualization).</li>
|
||
<li><a href="https://github.com/cpmech/gosl">gosl</a> - Go scientific
|
||
library for linear algebra, FFT, geometry, NURBS, numerical methods,
|
||
probabilities, optimisation, differential equations, and more.</li>
|
||
<li><a href="https://github.com/OGFris/GoStats">GoStats</a> - GoStats is
|
||
an Open Source GoLang library for math statistics mostly used in Machine
|
||
Learning domains, it covers most of the Statistical measures
|
||
functions.</li>
|
||
<li><a href="https://github.com/yourbasic/graph">graph</a> - Library of
|
||
basic graph algorithms.</li>
|
||
<li><a
|
||
href="https://github.com/nikolaydubina/jsonl-graph">jsonl-graph</a> -
|
||
Tool to manipulate JSONL graphs with graphviz support.</li>
|
||
<li><a href="https://github.com/ChristopherRabotin/ode">ode</a> -
|
||
Ordinary differential equation (ODE) solver which supports extended
|
||
states and channel-based iteration stop conditions.</li>
|
||
<li><a href="https://github.com/paulmach/orb">orb</a> - 2D geometry
|
||
types with clipping, GeoJSON and Mapbox Vector Tile support.</li>
|
||
<li><a href="https://github.com/alixaxel/pagerank">pagerank</a> -
|
||
Weighted PageRank algorithm implemented in Go.</li>
|
||
<li><a
|
||
href="https://github.com/sgreben/piecewiselinear">piecewiselinear</a> -
|
||
Tiny linear interpolation library.</li>
|
||
<li><a href="https://github.com/claygod/PiHex">PiHex</a> -
|
||
Implementation of the “Bailey-Borwein-Plouffe” algorithm for the
|
||
hexadecimal number Pi.</li>
|
||
<li><a href="https://github.com/khezen/rootfinding">rootfinding</a> -
|
||
root-finding algorithms library for finding roots of quadratic
|
||
functions.</li>
|
||
<li><a href="https://github.com/james-bowman/sparse">sparse</a> - Go
|
||
Sparse matrix formats for linear algebra supporting scientific and
|
||
machine learning applications, compatible with gonum matrix
|
||
libraries.</li>
|
||
<li><a href="https://github.com/montanaflynn/stats">stats</a> -
|
||
Statistics package with common functions missing from the Golang
|
||
standard library.</li>
|
||
<li><a href="https://github.com/nytlabs/streamtools">streamtools</a> -
|
||
general purpose, graphical tool for dealing with streams of data.</li>
|
||
<li><a href="https://github.com/DavidBelicza/TextRank">TextRank</a> -
|
||
TextRank implementation in Golang with extendable features
|
||
(summarization, weighting, phrase extraction) and multithreading
|
||
(goroutine) support.</li>
|
||
<li><a href="https://github.com/tchayen/triangolatte">triangolatte</a> -
|
||
2D triangulation library. Allows translating lines and polygons (both
|
||
based on points) to the language of GPUs.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="security">Security</h2>
|
||
<p><em>Libraries that are used to help make your application more
|
||
secure.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/hlandau/acme">acmetool</a> - ACME (Let’s
|
||
Encrypt) client tool with automatic renewal.</li>
|
||
<li><a href="https://github.com/cossacklabs/acra">acra</a> - Network
|
||
encryption proxy to protect database-based applications from data leaks:
|
||
strong selective encryption, SQL injections prevention, intrusion
|
||
detection system.</li>
|
||
<li><a href="https://github.com/FiloSottile/age">age</a> - A simple,
|
||
modern and secure encryption tool (and Go library) with small explicit
|
||
keys, no config options, and UNIX-style composability.</li>
|
||
<li><a
|
||
href="https://github.com/andskur/argon2-hashing">argon2-hashing</a> -
|
||
light wrapper around Go’s argon2 package that closely mirrors with Go’s
|
||
standard library Bcrypt and simple-scrypt package.</li>
|
||
<li><a href="https://github.com/raja/argon2pw">argon2pw</a> - Argon2
|
||
password hash generation with constant-time password comparison.</li>
|
||
<li><a
|
||
href="https://pkg.go.dev/golang.org/x/crypto/acme/autocert">autocert</a>
|
||
- Auto provision Let’s Encrypt certificates and start a TLS server.</li>
|
||
<li><a href="https://github.com/jaredfolkins/badactor">BadActor</a> -
|
||
In-memory, application-driven jailer built in the spirit of
|
||
fail2ban.</li>
|
||
<li><a href="https://github.com/mariocandela/beelzebub">beelzebub</a> -
|
||
A secure low code honeypot framework, leveraging AI for System
|
||
Virtualization.</li>
|
||
<li><a href="https://github.com/anatol/booster">booster</a> - Fast
|
||
initramfs generator with full-disk encryption support.</li>
|
||
<li><a href="https://github.com/Ullaakut/cameradar">Cameradar</a> - Tool
|
||
and library to remotely hack RTSP streams from surveillance
|
||
cameras.</li>
|
||
<li><a
|
||
href="https://github.com/mvmaasakkers/certificates">certificates</a> -
|
||
An opinionated tool for generating tls certificates.</li>
|
||
<li><a href="https://github.com/caddyserver/certmagic">CertMagic</a> -
|
||
Mature, robust, and powerful ACME client integration for fully-managed
|
||
TLS certificate issuance and renewal.</li>
|
||
<li><a href="https://github.com/corazawaf/coraza">Coraza</a> -
|
||
Enterprise-ready, modsecurity and OWASP CRS compatible WAF library.</li>
|
||
<li><a href="https://github.com/golang-module/dongle">dongle</a> - A
|
||
simple, semantic and developer-friendly golang package for
|
||
encoding&decoding and encryption&decryption.</li>
|
||
<li><a href="https://github.com/bobg/encid">encid</a> - Encode and
|
||
decode encrypted integer IDs.</li>
|
||
<li><a
|
||
href="https://github.com/prashantgupta24/firewalld-rest">firewalld-rest</a>
|
||
- A rest application to dynamically update firewalld rules on a linux
|
||
server.</li>
|
||
<li><a
|
||
href="https://github.com/m1/go-generate-password">go-generate-password</a>
|
||
- Password generator that can be used on the cli or as a library.</li>
|
||
<li><a href="https://github.com/tg123/go-htpasswd">go-htpasswd</a> -
|
||
Apache htpasswd Parser for Go.</li>
|
||
<li><a
|
||
href="https://github.com/lane-c-wagner/go-password-validator">go-password-validator</a>
|
||
- Password validator based on raw cryptographic entropy values.</li>
|
||
<li><a href="https://github.com/number571/go-peer">go-peer</a> - A
|
||
software library for creating secure and anonymous decentralized
|
||
systems.</li>
|
||
<li><a href="https://github.com/hillu/go-yara">go-yara</a> - Go Bindings
|
||
for <a href="https://github.com/plusvic/yara">YARA</a>, the “pattern
|
||
matching swiss knife for malware researchers (and everyone else)”.</li>
|
||
<li><a href="https://github.com/dwin/goArgonPass">goArgonPass</a> -
|
||
Argon2 password hash and verification designed to be compatible with
|
||
existing Python and PHP implementations.</li>
|
||
<li><a
|
||
href="https://github.com/dwin/goSecretBoxPassword">goSecretBoxPassword</a>
|
||
- A probably paranoid package for securely hashing and encrypting
|
||
passwords.</li>
|
||
<li><a href="https://github.com/avahidi/interpol">Interpol</a> -
|
||
Rule-based data generator for fuzzing and penetration testing.</li>
|
||
<li><a href="https://github.com/go-acme/lego">lego</a> - Pure Go ACME
|
||
client library and CLI tool (for use with Let’s Encrypt).</li>
|
||
<li><a href="https://github.com/awnumar/memguard">memguard</a> - A pure
|
||
Go library for handling sensitive values in memory.</li>
|
||
<li><a href="https://github.com/kevinburke/nacl">nacl</a> - Go
|
||
implementation of the NaCL set of API’s.</li>
|
||
<li><a href="https://github.com/pjebs/optimus-go">optimus-go</a> - ID
|
||
hashing and Obfuscation using Knuth’s Algorithm.</li>
|
||
<li><a href="https://github.com/hlandau/passlib">passlib</a> -
|
||
Futureproof password hashing library.</li>
|
||
<li><a href="https://github.com/zitadel/passwap">passwap</a> - Provides
|
||
a unified implementation between different password hashing
|
||
algorithms</li>
|
||
<li><a href="https://github.com/rsjethani/secret">secret</a> - Prevent
|
||
your secrets from leaking into logs, std* etc.</li>
|
||
<li><a href="https://github.com/unrolled/secure">secure</a> - HTTP
|
||
middleware for Go that facilitates some quick security wins.</li>
|
||
<li><a href="https://github.com/xaionaro-go/secureio">secureio</a> - An
|
||
keyexchanging+authenticating+encrypting wrapper and multiplexer for
|
||
<code>io.ReadWriteCloser</code> based on XChaCha20-poly1305, ECDH and
|
||
ED25519.</li>
|
||
<li><a
|
||
href="https://github.com/elithrar/simple-scrypt">simple-scrypt</a> -
|
||
Scrypt package with a simple, obvious API and automatic cost calibration
|
||
built-in.</li>
|
||
<li><a href="https://github.com/ssh-vault/ssh-vault">ssh-vault</a> -
|
||
encrypt/decrypt using ssh keys.</li>
|
||
<li><a href="https://github.com/adrianosela/sslmgr">sslmgr</a> - SSL
|
||
certificates made easy with a high level wrapper around
|
||
acme/autocert.</li>
|
||
<li><a href="https://github.com/kitabisa/teler-waf">teler-waf</a> -
|
||
teler-waf is a Go HTTP middleware that provide teler IDS functionality
|
||
to protect against web-based attacks and improve the security of
|
||
Go-based web applications. It is highly configurable and easy to
|
||
integrate into existing Go applications.</li>
|
||
<li><a href="https://github.com/cossacklabs/themis">themis</a> -
|
||
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.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="serialization">Serialization</h2>
|
||
<p><em>Libraries and tools for binary serialization.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/PromonLogicalis/asn1">asn1</a> - Asn.1
|
||
BER and DER encoding library for golang.</li>
|
||
<li><a href="https://github.com/glycerine/bambam">bambam</a> - generator
|
||
for Cap’n Proto schemas from go.</li>
|
||
<li><a href="https://github.com/32leaves/bel">bel</a> - Generate
|
||
TypeScript interfaces from Go structs/interfaces. Useful for JSON
|
||
RPC.</li>
|
||
<li><a href="https://github.com/ghostiam/binstruct">binstruct</a> -
|
||
Golang binary decoder for mapping data into the structure.</li>
|
||
<li><a href="https://github.com/fxamacker/cbor">cbor</a> - Small, safe,
|
||
and easy CBOR encoding and decoding library.</li>
|
||
<li><a href="https://github.com/pascaldekloe/colfer">colfer</a> - Code
|
||
generation for the Colfer binary format.</li>
|
||
<li><a href="https://github.com/jszwec/csvutil">csvutil</a> - High
|
||
Performance, idiomatic CSV record encoding and decoding to native Go
|
||
structures.</li>
|
||
<li><a href="https://github.com/epiclabs-io/elastic">elastic</a> -
|
||
Convert slices, maps or any other unknown value across different types
|
||
at run-time, no matter what.</li>
|
||
<li><a href="https://github.com/huydang284/fixedwidth">fixedwidth</a> -
|
||
Fixed-width text formatting (UTF-8 supported).</li>
|
||
<li><a href="https://github.com/o1egl/fwencoder">fwencoder</a> - Fixed
|
||
width file parser (encoding and decoding library) for Go.</li>
|
||
<li><a href="https://github.com/glycerine/go-capnproto">go-capnproto</a>
|
||
- Cap’n Proto library and parser for go.</li>
|
||
<li><a href="https://github.com/ugorji/go">go-codec</a> - High
|
||
Performance, feature-Rich, idiomatic encode, decode and rpc library for
|
||
msgpack, cbor and json, with runtime-based OR code-generation
|
||
support.</li>
|
||
<li><a href="https://github.com/sbourlon/go-lctree">go-lctree</a> -
|
||
Provides a CLI and primitives to serialize and deserialize <a
|
||
href="https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation">LeetCode
|
||
binary trees</a>.</li>
|
||
<li><a href="https://github.com/gogo/protobuf">gogoprotobuf</a> -
|
||
Protocol Buffers for Go with Gadgets.</li>
|
||
<li><a href="https://github.com/golang/protobuf">goprotobuf</a> - Go
|
||
support, in the form of a library and protocol compiler plugin, for
|
||
Google’s protocol buffers.</li>
|
||
<li><a href="https://github.com/raszia/gotiny">gotiny</a> - Efficient Go
|
||
serialization library, gotiny is almost as fast as serialization
|
||
libraries that generate code.</li>
|
||
<li><a href="https://github.com/json-iterator/go">jsoniter</a> -
|
||
High-performance 100% compatible drop-in replacement of
|
||
“encoding/json”.</li>
|
||
<li><a href="https://github.com/mitchellh/mapstructure">mapstructure</a>
|
||
- Go library for decoding generic map values into native Go
|
||
structures.</li>
|
||
<li><a
|
||
href="https://github.com/yvasiyarov/php_session_decoder">php_session_decoder</a>
|
||
- GoLang library for working with PHP session format and PHP
|
||
Serialize/Unserialize functions.</li>
|
||
<li><a href="https://github.com/vimeda/pletter">pletter</a> - A standard
|
||
way to wrap a proto message for message brokers.</li>
|
||
<li><a href="https://github.com/tuvistavie/structomap">structomap</a> -
|
||
Library to easily and dynamically generate maps from static
|
||
structures.</li>
|
||
<li><a href="https://github.com/recolude/unitpacking">unitpacking</a> -
|
||
Library to pack unit vectors into as fewest bytes as possible.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="server-applications">Server Applications</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/xyproto/algernon">algernon</a> - HTTP/2
|
||
web server with built-in support for Lua, Markdown, GCSS and Amber.</li>
|
||
<li><a href="https://github.com/caddyserver/caddy">Caddy</a> - Caddy is
|
||
an alternative, HTTP/2 web server that’s easy to configure and use.</li>
|
||
<li><a href="https://www.consul.io/">consul</a> - Consul is a tool for
|
||
service discovery, monitoring and configuration.</li>
|
||
<li><a
|
||
href="https://github.com/blind-oracle/cortex-tenant">cortex-tenant</a> -
|
||
Prometheus remote write proxy that adds add Cortex tenant ID header
|
||
based on metric labels.</li>
|
||
<li><a href="https://github.com/cortesi/devd">devd</a> - Local webserver
|
||
for developers.</li>
|
||
<li><a href="https://github.com/Bilibili/discovery">discovery</a> - A
|
||
registry for resilient mid-tier load balancing and failover.</li>
|
||
<li><a href="https://github.com/krotik/dudeldu">dudeldu</a> - A simple
|
||
SHOUTcast server.</li>
|
||
<li><a href="https://github.com/neotoolkit/dummy">dummy</a> - Run mock
|
||
server based off an API contract with one command.</li>
|
||
<li><a href="https://github.com/megaease/easegress">Easegress</a> - A
|
||
cloud native high availability/performance traffic orchestration system
|
||
with observability and extensibility.</li>
|
||
<li><a href="https://github.com/etcd-io/etcd">etcd</a> -
|
||
Highly-available key value store for shared configuration and service
|
||
discovery.</li>
|
||
<li><a href="https://github.com/ironsmile/euterpe">Euterpe</a> -
|
||
Self-hosted music streaming server with built-in web UI and REST
|
||
API.</li>
|
||
<li><a href="https://github.com/getfider/fider">Fider</a> - Fider is an
|
||
open platform to collect and organize customer feedback.</li>
|
||
<li><a href="https://github.com/checkr/flagr">Flagr</a> - Flagr is an
|
||
open-source feature flagging and A/B testing service.</li>
|
||
<li><a href="https://github.com/markphelps/flipt">flipt</a> - A self
|
||
contained feature flag solution written in Go and Vue.js</li>
|
||
<li><a
|
||
href="https://github.com/thomaspoignant/go-feature-flag">go-feature-flag</a>
|
||
- A simple, complete and lightweight self-hosted feature flag solution
|
||
100% Open Source.</li>
|
||
<li><a
|
||
href="https://github.com/fabiocicerchia/go-proxy-cache">go-proxy-cache</a>
|
||
- Simple Reverse Proxy with Caching, written in Go, using Redis.</li>
|
||
<li><a href="https://github.com/ortuman/jackal">jackal</a> - An XMPP
|
||
server written in Go.</li>
|
||
<li><a href="https://github.com/rekby/lets-proxy2">lets-proxy2</a> -
|
||
Reverse proxy for handle https with issue certificates in fly from
|
||
lets-encrypt.</li>
|
||
<li><a href="https://github.com/minio/minio">minio</a> - Minio is a
|
||
distributed object storage server.</li>
|
||
<li><a href="https://github.com/sinhashubham95/moxy">Moxy</a> - 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.</li>
|
||
<li><a
|
||
href="https://github.com/blind-oracle/nginx-prometheus">nginx-prometheus</a>
|
||
- Nginx log parser and exporter to Prometheus.</li>
|
||
<li><a href="https://nsq.io/">nsq</a> - A realtime distributed messaging
|
||
platform.</li>
|
||
<li><a href="https://github.com/camgraff/protoxy">protoxy</a> - A proxy
|
||
server that converts JSON request bodies to Protocol Buffers.</li>
|
||
<li><a
|
||
href="https://github.com/blind-oracle/psql-streamer">psql-streamer</a> -
|
||
Stream database events from PostgreSQL to Kafka.</li>
|
||
<li><a
|
||
href="https://github.com/blind-oracle/riemann-relay">riemann-relay</a> -
|
||
Relay to load-balance Riemann events and/or convert them to Carbon.</li>
|
||
<li><a href="https://github.com/spiral/roadrunner">RoadRunner</a> -
|
||
High-performance PHP application server, load-balancer and process
|
||
manager.</li>
|
||
<li><a href="https://github.com/drakkan/sftpgo">SFTPGo</a> - Fully
|
||
featured and highly configurable SFTP server with optional FTP/S and
|
||
WebDAV support. It can serve local filesystem and Cloud Storage backends
|
||
such as S3 and Google Cloud Storage.</li>
|
||
<li><a
|
||
href="https://github.com/leberKleber/simple-jwt-provider">simple-jwt-provider</a>
|
||
- Simple and lightweight provider which exhibits JWTs, supports login,
|
||
password-reset (via mail) and user management.</li>
|
||
<li><a href="https://github.com/tricksterproxy/trickster">Trickster</a>
|
||
- HTTP reverse proxy cache and time series accelerator.</li>
|
||
<li><a href="https://github.com/charmbracelet/wish">Wish</a> - Make SSH
|
||
apps, just like that!</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="stream-processing">Stream Processing</h2>
|
||
<p><em>Libraries and tools for stream processing and reactive
|
||
programming.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/reugn/go-streams">go-streams</a> - Go
|
||
stream processing library.</li>
|
||
<li><a href="https://github.com/primetalk/goio">goio</a> - An
|
||
implementation of IO, Stream, Fiber for Golang, inspired by awesome
|
||
Scala libraries cats and fs2.</li>
|
||
<li><a href="https://github.com/whitaker-io/machine">machine</a> - Go
|
||
library for writing and generating stream workers with built in metrics
|
||
and traceability.</li>
|
||
<li><a href="https://github.com/youthlin/stream">stream</a> - Go Stream,
|
||
like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce…</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="template-engines">Template Engines</h2>
|
||
<p><em>Libraries and tools for templating and lexing.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/benbjohnson/ego">ego</a> - Lightweight
|
||
templating language that lets you write templates in Go. Templates are
|
||
translated into Go and compiled.</li>
|
||
<li><a
|
||
href="https://github.com/dannyvankooten/extemplate">extemplate</a> -
|
||
Tiny wrapper around html/template to allow for easy file-based template
|
||
inheritance.</li>
|
||
<li><a href="https://github.com/valyala/fasttemplate">fasttemplate</a> -
|
||
Simple and fast template engine. Substitutes template placeholders up to
|
||
10x faster than <a
|
||
href="https://golang.org/pkg/text/template/">text/template</a>.</li>
|
||
<li><a href="https://www.gomponents.com">gomponents</a> - HTML 5
|
||
components in pure Go, that look something like this:
|
||
<code>func(name string) g.Node { return Div(Class("headline"), g.Textf("Hi %v!", name)) }</code>.</li>
|
||
<li><a href="https://github.com/m1/gospin">gospin</a> - Article spinning
|
||
and spintax/spinning syntax engine, useful for A/B, testing pieces of
|
||
text/articles and creating more natural conversations.</li>
|
||
<li><a href="https://github.com/goradd/got">got</a> - A Go code
|
||
generator inspired by Hero and Fasttemplate. Has include files, custom
|
||
tag definitions, injected Go code, language translation, and more.</li>
|
||
<li><a href="https://github.com/foolin/goview">goview</a> - Goview is a
|
||
lightweight, minimalist and idiomatic template library based on golang
|
||
html/template for building Go web application.</li>
|
||
<li><a href="https://github.com/CloudyKit/jet">jet</a> - Jet template
|
||
engine.</li>
|
||
<li><a href="https://github.com/osteele/liquid">liquid</a> - Go
|
||
implementation of Shopify Liquid templates.</li>
|
||
<li><a href="https://github.com/johnfercher/maroto">maroto</a> - A
|
||
maroto way to create PDFs. Maroto is inspired in Bootstrap and uses
|
||
gofpdf. Fast and simple.</li>
|
||
<li><a href="https://github.com/flosch/pongo2">pongo2</a> - Django-like
|
||
template-engine for Go.</li>
|
||
<li><a href="https://github.com/valyala/quicktemplate">quicktemplate</a>
|
||
- Fast, powerful, yet easy to use template engine. Converts templates
|
||
into Go code and then compiles it.</li>
|
||
<li><a href="https://github.com/aymerick/raymond">raymond</a> - Complete
|
||
handlebars implementation in Go.</li>
|
||
<li><a href="https://github.com/sipin/gorazor">Razor</a> - Razor view
|
||
engine for Golang.</li>
|
||
<li><a href="https://github.com/robfig/soy">Soy</a> - Closure templates
|
||
(aka Soy templates) for Go, following the <a
|
||
href="https://developers.google.com/closure/templates/">official
|
||
spec</a>.</li>
|
||
<li><a href="https://github.com/Masterminds/sprig">sprig</a> - Useful
|
||
template functions for Go templates.</li>
|
||
<li><a href="https://github.com/lucasepe/tbd">tbd</a> - A really simple
|
||
way to create text templates with placeholders - exposes extra builtin
|
||
Git repo metadata.</li>
|
||
<li><a href="https://github.com/a-h/templ">templ</a> - A HTML templating
|
||
language that has great developer tooling.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="testing">Testing</h2>
|
||
<p><em>Libraries for testing codebases and generating test
|
||
data.</em></p>
|
||
<ul>
|
||
<li><p>Testing Frameworks</p>
|
||
<ul>
|
||
<li><a href="https://apitest.dev">apitest</a> - Simple and extensible
|
||
behavioural testing library for REST based services or HTTP handlers
|
||
that supports mocking external http calls and rendering of sequence
|
||
diagrams.</li>
|
||
<li><a href="https://github.com/go-playground/assert">assert</a> - Basic
|
||
Assertion Library used along side native go testing, with building
|
||
blocks for custom assertions.</li>
|
||
<li><a href="https://github.com/cavaliercoder/badio">badio</a> -
|
||
Extensions to Go’s <code>testing/iotest</code> package.</li>
|
||
<li><a href="https://github.com/h2non/baloo">baloo</a> - Expressive and
|
||
versatile end-to-end HTTP API testing made easy.</li>
|
||
<li><a href="https://github.com/carlmjohnson/be">be</a> - The minimalist
|
||
generic test assertion library.</li>
|
||
<li><a href="https://github.com/fulldump/biff">biff</a> - Bifurcation
|
||
testing framework, BDD compatible.</li>
|
||
<li><a href="https://github.com/percolate/charlatan">charlatan</a> -
|
||
Tool to generate fake interface implementations for tests.</li>
|
||
<li><a href="https://github.com/SimonBaeumer/commander">commander</a> -
|
||
Tool for testing cli applications on windows, linux and osx.</li>
|
||
<li><a href="https://github.com/covergates/covergates">covergates</a> -
|
||
Self-hosted code coverage report review and management service.</li>
|
||
<li><a href="https://github.com/bradleyjkemp/cupaloy">cupaloy</a> -
|
||
Simple snapshot testing addon for your test framework.</li>
|
||
<li><a href="https://github.com/khaiql/dbcleaner">dbcleaner</a> - Clean
|
||
database for testing purpose, inspired by <code>database_cleaner</code>
|
||
in Ruby.</li>
|
||
<li><a href="https://github.com/viant/dsunit">dsunit</a> - Datastore
|
||
testing for SQL, NoSQL, structured files.</li>
|
||
<li><a
|
||
href="https://github.com/fergusstrange/embedded-postgres">embedded-postgres</a>
|
||
- Run a real Postgres database locally on Linux, OSX or Windows as part
|
||
of another Go application or test.</li>
|
||
<li><a href="https://github.com/viant/endly">endly</a> - Declarative end
|
||
to end functional testing.</li>
|
||
<li><a href="https://github.com/rekby/fixenv">fixenv</a> - Fixture
|
||
manage engine, inspired by pytest fixtures.</li>
|
||
<li><a href="https://github.com/fluentassert/verify">fluentassert</a> -
|
||
Extensible, type-safe, fluent assertion Go library.</li>
|
||
<li><a href="https://github.com/suzuki-shunsuke/flute">flute</a> - HTTP
|
||
client testing framework.</li>
|
||
<li><a href="https://github.com/verdverm/frisby">frisby</a> - REST API
|
||
testing framework.</li>
|
||
<li><a href="https://github.com/hedhyw/gherkingen">gherkingen</a> - BDD
|
||
boilerplate generator and framework.</li>
|
||
<li><a href="https://onsi.github.io/ginkgo/">ginkgo</a> - BDD Testing
|
||
Framework for Go.</li>
|
||
<li><a href="https://github.com/orlangure/gnomock">gnomock</a> -
|
||
integration testing with real dependencies (database, cache, even
|
||
Kubernetes or AWS) running in Docker, without mocks.</li>
|
||
<li><a href="https://github.com/msoap/go-carpet">go-carpet</a> - Tool
|
||
for viewing test coverage in terminal.</li>
|
||
<li><a href="https://github.com/google/go-cmp">go-cmp</a> - Package for
|
||
comparing Go values in tests.</li>
|
||
<li><a href="https://github.com/Eun/go-hit">go-hit</a> - Hit is an http
|
||
integration test framework written in golang.</li>
|
||
<li><a href="https://github.com/zimmski/go-mutesting">go-mutesting</a> -
|
||
Mutation testing for Go source code.</li>
|
||
<li><a
|
||
href="https://github.com/arikama/go-mysql-test-container">go-mysql-test-container</a>
|
||
- Golang MySQL testcontainer to help with MySQL integration
|
||
testing.</li>
|
||
<li><a href="http://github.com/gkampitakis/go-snaps">go-snaps</a> -
|
||
Jest-like snapshot testing in Golang.</li>
|
||
<li><a href="https://github.com/maxatome/go-testdeep">go-testdeep</a> -
|
||
Extremely flexible golang deep comparison, extends the go testing
|
||
package.</li>
|
||
<li><a
|
||
href="https://github.com/maargenton/go-testpredicate">go-testpredicate</a>
|
||
- Test predicate style assertions library with extensive diagnostics
|
||
output.</li>
|
||
<li><a href="https://github.com/dnaeon/go-vcr">go-vcr</a> - Record and
|
||
replay your HTTP interactions for fast, deterministic and accurate
|
||
tests.</li>
|
||
<li><a href="https://github.com/franela/goblin">goblin</a> - Mocha like
|
||
testing framework of Go.</li>
|
||
<li><a href="https://github.com/qiniu/goc">goc</a> - Goc is a
|
||
comprehensive coverage testing system for The Go Programming
|
||
Language.</li>
|
||
<li><a href="https://labix.org/gocheck">gocheck</a> - More advanced
|
||
testing framework alternative to gotest.</li>
|
||
<li><a href="https://github.com/smartystreets/goconvey/">GoConvey</a> -
|
||
BDD-style framework with web UI and live reload.</li>
|
||
<li><a href="https://github.com/corbym/gocrest">gocrest</a> - Composable
|
||
hamcrest-like matchers for Go assertions.</li>
|
||
<li><a href="https://github.com/cucumber/godog">godog</a> - Cucumber BDD
|
||
framework for Go.</li>
|
||
<li><a href="https://github.com/appleboy/gofight">gofight</a> - API
|
||
Handler Testing for Golang Router framework.</li>
|
||
<li><a href="https://github.com/corbym/gogiven">gogiven</a> -
|
||
YATSPEC-like BDD testing framework for Go.</li>
|
||
<li><a href="https://github.com/jfilipczyk/gomatch">gomatch</a> -
|
||
library created for testing JSON against patterns.</li>
|
||
<li><a href="https://onsi.github.io/gomega/">gomega</a> - Rspec like
|
||
matcher/assertion library.</li>
|
||
<li><a href="https://github.com/stv0g/gont">Gont</a> - Go network
|
||
testing toolkit for testing building complex network topologies using
|
||
Linux namespaces.</li>
|
||
<li><a href="https://github.com/stesla/gospecify">gospecify</a> - This
|
||
provides a BDD syntax for testing your Go code. It should be familiar to
|
||
anybody who has used libraries such as rspec.</li>
|
||
<li><a href="https://github.com/pavlo/gosuite">gosuite</a> - Brings
|
||
lightweight test suites with setup/teardown facilities to
|
||
<code>testing</code> by leveraging Go1.7’s Subtests.</li>
|
||
<li><a href="https://github.com/ysmood/got">got</a> - An enjoyable
|
||
golang test framework.</li>
|
||
<li><a
|
||
href="https://github.com/gotestyourself/gotest.tools">gotest.tools</a> -
|
||
A collection of packages to augment the go testing package and support
|
||
common patterns.</li>
|
||
<li><a href="https://github.com/rdrdr/hamcrest">Hamcrest</a> - fluent
|
||
framework for declarative Matcher objects that, when applied to input
|
||
values, produce self-describing results.</li>
|
||
<li><a href="https://github.com/gavv/httpexpect">httpexpect</a> -
|
||
Concise, declarative, and easy to use end-to-end HTTP and REST API
|
||
testing.</li>
|
||
<li><a href="https://github.com/matryer/is">is</a> - Professional
|
||
lightweight testing mini-framework for Go.</li>
|
||
<li><a href="https://github.com/kinbiko/jsonassert">jsonassert</a> -
|
||
Package for verifying that your JSON payloads are serialized
|
||
correctly.</li>
|
||
<li><a
|
||
href="https://github.com/dedalqq/omg.testingtools">omg.testingtools</a>
|
||
- The simple library for change a values of private fields for
|
||
testing.</li>
|
||
<li><a href="https://github.com/yookoala/restit">restit</a> - Go micro
|
||
framework to help writing RESTful API integration test.</li>
|
||
<li><a href="https://github.com/jgroeneveld/schema">schema</a> - Quick
|
||
and easy expression matching for JSON schemas used in requests and
|
||
responses.</li>
|
||
<li><a href="https://github.com/elgohr/stop-and-go">stop-and-go</a> -
|
||
Testing helper for concurrency.</li>
|
||
<li><a href="https://github.com/adamluzsi/testcase">testcase</a> -
|
||
Idiomatic testing framework for Behavior Driven Development.</li>
|
||
<li><a
|
||
href="https://github.com/testcontainers/testcontainers-go">testcontainers-go</a>
|
||
- 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.</li>
|
||
<li><a
|
||
href="https://github.com/go-testfixtures/testfixtures">testfixtures</a>
|
||
- A helper for Rails’ like test fixtures to test database
|
||
applications.</li>
|
||
<li><a href="https://github.com/stretchr/testify">Testify</a> - Sacred
|
||
extension to the standard go testing package.</li>
|
||
<li><a href="https://github.com/zhulongcheng/testsql">testsql</a> -
|
||
Generate test data from SQL files before testing and clear it after
|
||
finished.</li>
|
||
<li><a href="https://github.com/MarvinJWendt/testza">testza</a> -
|
||
Full-featured test framework with nice colorized output.</li>
|
||
<li><a href="https://github.com/jgroeneveld/trial">trial</a> - Quick and
|
||
easy extendable assertions without introducing much boilerplate.</li>
|
||
<li><a href="https://github.com/vcaesar/tt">Tt</a> - Simple and colorful
|
||
test tools.</li>
|
||
<li><a href="https://github.com/posener/wstest">wstest</a> - Websocket
|
||
client for unit-testing a websocket http.Handler.</li>
|
||
</ul></li>
|
||
<li><p>Mock</p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/maxbrunsfeld/counterfeiter">counterfeiter</a> -
|
||
Tool for generating self-contained mock objects.</li>
|
||
<li><a href="https://gitlab.com/so_literate/genmock">genmock</a> - Go
|
||
mocking system with code generator for building calls of the interface
|
||
methods.</li>
|
||
<li><a href="https://github.com/elgohr/go-localstack">go-localstack</a>
|
||
- Tool for using localstack in AWS testing.</li>
|
||
<li><a href="https://github.com/DATA-DOG/go-sqlmock">go-sqlmock</a> -
|
||
Mock SQL driver for testing database interactions.</li>
|
||
<li><a href="https://github.com/DATA-DOG/go-txdb">go-txdb</a> - Single
|
||
transaction based database driver mainly for testing purposes.</li>
|
||
<li><a href="https://github.com/h2non/gock">gock</a> - Versatile HTTP
|
||
mocking made easy.</li>
|
||
<li><a href="https://github.com/golang/mock">gomock</a> - Mocking
|
||
framework for the Go programming language.</li>
|
||
<li><a href="https://github.com/seborama/govcr">govcr</a> - HTTP mock
|
||
for Golang: record and replay HTTP interactions for offline
|
||
testing.</li>
|
||
<li><a href="https://github.com/SpectoLabs/hoverfly">hoverfly</a> -
|
||
HTTP(S) proxy for recording and simulating REST/SOAP APIs with
|
||
extensible middleware and easy-to-use CLI.</li>
|
||
<li><a href="https://github.com/jarcoal/httpmock">httpmock</a> - Easy
|
||
mocking of HTTP responses from external resources.</li>
|
||
<li><a href="https://github.com/gojuno/minimock">minimock</a> - Mock
|
||
generator for Go interfaces.</li>
|
||
<li><a href="https://github.com/vektra/mockery">mockery</a> - Tool to
|
||
generate Go interfaces.</li>
|
||
<li><a href="https://github.com/tv42/mockhttp">mockhttp</a> - Mock
|
||
object for Go http.ResponseWriter.</li>
|
||
<li><a href="https://github.com/GuilhermeCaruso/mooncake">mooncake</a> -
|
||
A simple way to generate mocks for multiple purposes.</li>
|
||
<li><a href="https://github.com/cabify/timex">timex</a> - A
|
||
test-friendly replacement for the native <code>time</code> package.</li>
|
||
<li><a href="https://github.com/xhd2015/xgo">xgo</a> - A general
|
||
pureposed function mocking library.</li>
|
||
</ul></li>
|
||
<li><p>Fuzzing and delta-debugging/reducing/shrinking.</p>
|
||
<ul>
|
||
<li><a href="https://github.com/dvyukov/go-fuzz">go-fuzz</a> -
|
||
Randomized testing system.</li>
|
||
<li><a href="https://github.com/google/gofuzz">gofuzz</a> - Library for
|
||
populating go objects with random values.</li>
|
||
<li><a href="https://github.com/zimmski/tavor">Tavor</a> - Generic
|
||
fuzzing and delta-debugging framework.</li>
|
||
</ul></li>
|
||
<li><p>Selenium and browser control tools.</p>
|
||
<ul>
|
||
<li><a href="https://github.com/mafredri/cdp">cdp</a> - Type-safe
|
||
bindings for the Chrome Debugging Protocol that can be used with
|
||
browsers or other debug targets that implement it.</li>
|
||
<li><a href="https://github.com/knq/chromedp">chromedp</a> - a way to
|
||
drive/test Chrome, Safari, Edge, Android Webviews, and other browsers
|
||
supporting the Chrome Debugging Protocol.</li>
|
||
<li><a href="https://github.com/aerokube/ggr">ggr</a> - a lightweight
|
||
server that routes and proxies Selenium WebDriver requests to multiple
|
||
Selenium hubs.</li>
|
||
<li><a
|
||
href="https://github.com/mxschmitt/playwright-go">playwright-go</a> -
|
||
browser automation library to control Chromium, Firefox and WebKit with
|
||
a single API.</li>
|
||
<li><a href="https://github.com/go-rod/rod">rod</a> - A Devtools driver
|
||
to make web automation and scraping easy.</li>
|
||
<li><a href="https://github.com/aerokube/selenoid">selenoid</a> -
|
||
alternative Selenium hub server that launches browsers within
|
||
containers.</li>
|
||
</ul></li>
|
||
<li><p>Fail injection</p>
|
||
<ul>
|
||
<li><a href="https://github.com/pingcap/failpoint">failpoint</a> - An
|
||
implementation of <a
|
||
href="https://www.freebsd.org/cgi/man.cgi?query=fail">failpoints</a> for
|
||
Golang.</li>
|
||
</ul></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="text-processing">Text Processing</h2>
|
||
<p><em>Libraries for parsing and manipulating texts.</em></p>
|
||
<p>See also <a href="#natural-language-processing">Natural Language
|
||
Processing</a> and <a href="#text-analysis">Text Analysis</a>.</p>
|
||
<h3 id="formatters">Formatters</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/bojanz/address">address</a> - Handles
|
||
address representation, validation and formatting.</li>
|
||
<li><a href="https://github.com/Guitarbum722/align">align</a> - A
|
||
general purpose application that aligns text.</li>
|
||
<li><a
|
||
href="https://github.com/labstack/gommon/tree/master/bytes">bytes</a> -
|
||
Formats and parses numeric byte values (10K, 2M, 3G, etc.).</li>
|
||
<li><a
|
||
href="https://github.com/ianlopshire/go-fixedwidth">go-fixedwidth</a> -
|
||
Fixed-width text formatting (encoder/decoder with reflection).</li>
|
||
<li><a href="https://github.com/dustin/go-humanize">go-humanize</a> -
|
||
Formatters for time, numbers, and memory size to human readable
|
||
format.</li>
|
||
<li><a href="https://github.com/bndr/gotabulate">gotabulate</a> - Easily
|
||
pretty-print your tabular data with Go.</li>
|
||
<li><a href="https://github.com/isbm/textwrap">textwrap</a> - Wraps text
|
||
at end of lines. Implementation of <code>textwrap</code> module from
|
||
Python.</li>
|
||
</ul>
|
||
<h3 id="markup-languages">Markup Languages</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/mmalcek/bafi">bafi</a> - Universal JSON,
|
||
BSON, YAML, XML translator to ANY format using templates.</li>
|
||
<li><a href="https://github.com/CalebQ42/bbConvert">bbConvert</a> -
|
||
Converts bbCode to HTML that allows you to add support for custom bbCode
|
||
tags.</li>
|
||
<li><a href="https://github.com/russross/blackfriday">blackfriday</a> -
|
||
Markdown processor in Go.</li>
|
||
<li><a
|
||
href="https://github.com/drewstinnett/go-output-format">go-output-format</a>
|
||
- Output go structures into multiple formats (YAML/JSON/etc) in your
|
||
command line app.</li>
|
||
<li><a href="https://github.com/pelletier/go-toml">go-toml</a> - Go
|
||
library for the TOML format with query support and handy cli tools.</li>
|
||
<li><a href="https://github.com/yuin/goldmark">goldmark</a> - A Markdown
|
||
parser written in Go. Easy to extend, standard (CommonMark) compliant,
|
||
well structured.</li>
|
||
<li><a href="https://github.com/andrewstuart/goq">goq</a> - Declarative
|
||
unmarshalling of HTML using struct tags with jQuery syntax (uses
|
||
GoQuery).</li>
|
||
<li><a
|
||
href="https://github.com/JohannesKaufmann/html-to-markdown">html-to-markdown</a>
|
||
- Convert HTML to Markdown. Even works with entire websites and can be
|
||
extended through rules.</li>
|
||
<li><a href="https://github.com/antchfx/htmlquery">htmlquery</a> - An
|
||
XPath query package for HTML, lets you extract data or evaluate from
|
||
HTML documents by an XPath expression.</li>
|
||
<li><a href="https://github.com/nikolaydubina/htmlyaml">htmlyaml</a> -
|
||
Rich rendering of YAML as HTML in Go</li>
|
||
<li><a href="https://github.com/bobg/htree">htree</a> - Traverse,
|
||
navigate, filter, and otherwise process trees of <a
|
||
href="https://pkg.go.dev/golang.org/x/net/html#Node">html.Node</a>
|
||
objects.</li>
|
||
<li><a href="https://github.com/clbanning/mxj">mxj</a> - Encode / decode
|
||
XML as JSON or map[string]interface{}; extract values with dot-notation
|
||
paths and wildcards. Replaces x2j and j2x packages.</li>
|
||
<li><a href="https://github.com/BurntSushi/toml">toml</a> - TOML
|
||
configuration format (encoder/decoder with reflection).</li>
|
||
</ul>
|
||
<h3 id="parsersencodersdecoders">Parsers/Encoders/Decoders</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/sbstjn/allot">allot</a> - Placeholder
|
||
and wildcard text parsing for CLI tools and bots.</li>
|
||
<li><a href="https://github.com/aerogo/codetree">codetree</a> - Parses
|
||
indented code (python, pixy, scarlet, etc.) and returns a tree
|
||
structure.</li>
|
||
<li><a href="https://github.com/mingrammer/commonregex">commonregex</a>
|
||
- A collection of common regular expressions for Go.</li>
|
||
<li><a href="https://github.com/ockam-network/did">did</a> - DID
|
||
(Decentralized Identifiers) Parser and Stringer in Go.</li>
|
||
<li><a href="https://github.com/hscells/doi">doi</a> - Document object
|
||
identifier (doi) parser in Go.</li>
|
||
<li><a
|
||
href="https://github.com/editorconfig/editorconfig-core-go">editorconfig-core-go</a>
|
||
- Editorconfig file parser and manipulator for Go.</li>
|
||
<li><a href="https://github.com/mickep76/encdec">encdec</a> - Package
|
||
provides a generic interface to encoders and decoders.</li>
|
||
<li><a
|
||
href="https://github.com/elliotwutingfeng/go-fasttld">go-fasttld</a> -
|
||
High performance effective top level domains (eTLD) extraction
|
||
module.</li>
|
||
<li><a href="https://github.com/adrianmo/go-nmea">go-nmea</a> - NMEA
|
||
parser library for the Go language.</li>
|
||
<li><a href="https://github.com/emersion/go-vcard">go-vcard</a> - Parse
|
||
and format vCard.</li>
|
||
<li><a href="https://github.com/mmcdole/gofeed">gofeed</a> - Parse RSS
|
||
and Atom feeds in Go.</li>
|
||
<li><a
|
||
href="https://github.com/awalterschulze/gographviz">gographviz</a> -
|
||
Parses the Graphviz DOT language.</li>
|
||
<li><a href="https://github.com/polera/gonameparts">gonameparts</a> -
|
||
Parses human names into individual name parts.</li>
|
||
<li><a href="https://github.com/Wing924/ltsv">ltsv</a> - High
|
||
performance <a href="http://ltsv.org/">LTSV (Labeled Tab Separated
|
||
Value)</a> reader for Go.</li>
|
||
<li><a href="https://github.com/avito-tech/normalize">normalize</a> -
|
||
Sanitize, normalize and compare fuzzy text.</li>
|
||
<li><a href="https://github.com/jf-tech/omniparser">omniparser</a> - 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.</li>
|
||
<li><a href="https://github.com/nproc/parseargs-go">parseargs-go</a> -
|
||
string argument parser that understands quotes and backslashes.</li>
|
||
<li><a href="https://github.com/codemodus/parth">parth</a> - URL path
|
||
segmentation parsing.</li>
|
||
<li><a href="https://github.com/askeladdk/prattle">prattle</a> - Scan
|
||
and parse LL(1) grammars simply and efficiently.</li>
|
||
<li><a href="https://github.com/gortc/sdp">sdp</a> - SDP: Session
|
||
Description Protocol [<a href="https://tools.ietf.org/html/rfc4566">RFC
|
||
4566</a>].</li>
|
||
<li><a href="https://github.com/mvdan/sh">sh</a> - Shell parser and
|
||
formatter.</li>
|
||
<li><a href="https://github.com/bzick/tokenizer">tokenizer</a> - Parse
|
||
any string, slice or infinite buffer to any tokens.</li>
|
||
<li><a href="https://github.com/olebedev/when">when</a> - Natural EN and
|
||
RU language date/time parser with pluggable rules.</li>
|
||
<li><a href="https://github.com/stackerzzq/xj2go">xj2go</a> - Convert
|
||
xml or json to go struct.</li>
|
||
</ul>
|
||
<h3 id="regular-expressions">Regular Expressions</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/alixaxel/genex">genex</a> - Count and
|
||
expand Regular Expressions into all matching Strings.</li>
|
||
<li><a href="https://github.com/IGLOU-EU/go-wildcard">go-wildcard</a> -
|
||
Simple and lightweight wildcard pattern matching.</li>
|
||
<li><a href="https://github.com/zach-klippenstein/goregen">goregen</a> -
|
||
Library for generating random strings from regular expressions.</li>
|
||
<li><a href="https://github.com/oriser/regroup">regroup</a> - Match
|
||
regex expression named groups into go struct using struct tags and
|
||
automatic parsing.</li>
|
||
<li><a href="https://github.com/hedhyw/rex">rex</a> - Regular
|
||
expressions builder.</li>
|
||
</ul>
|
||
<h3 id="sanitation">Sanitation</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/microcosm-cc/bluemonday">bluemonday</a>
|
||
- HTML Sanitizer.</li>
|
||
<li><a
|
||
href="https://github.com/JoshuaDoes/gofuckyourself">gofuckyourself</a> -
|
||
A sanitization-based swear filter for Go.</li>
|
||
</ul>
|
||
<h3 id="scrapers">Scrapers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/asciimoo/colly">colly</a> - Fast and
|
||
Elegant Scraping Framework for Gophers.</li>
|
||
<li><a href="https://github.com/slotix/dataflowkit">dataflowkit</a> -
|
||
Web scraping Framework to turn websites into structured data.</li>
|
||
<li><a href="https://github.com/kkyr/go-recipe">go-recipe</a> - A
|
||
package for scraping recipes from websites.</li>
|
||
<li><a href="https://github.com/PuerkitoBio/goquery">GoQuery</a> -
|
||
GoQuery brings a syntax and a set of features similar to jQuery to the
|
||
Go language.</li>
|
||
<li><a href="https://github.com/zhshch2002/gospider">gospider</a> - A
|
||
simple golang spider/scraping framework,build a spider in 3 lines.
|
||
migrated from <a
|
||
href="https://github.com/zhshch2002/goribot">goribot</a></li>
|
||
<li><a href="https://github.com/foolin/pagser">pagser</a> - Pagser is a
|
||
simple, extensible, configurable parse and deserialize html page to
|
||
struct based on goquery and struct tags for golang crawler.</li>
|
||
<li><a href="https://github.com/zoomio/tagify">Tagify</a> - Produces a
|
||
set of tags from given source.</li>
|
||
<li><a href="https://github.com/cyucelen/walker">walker</a> - Seamlessly
|
||
fetch paginated data from any source. Simple and high performance API
|
||
scraping included.</li>
|
||
<li><a href="https://github.com/mvdan/xurls">xurls</a> - Extract urls
|
||
from text.</li>
|
||
</ul>
|
||
<h3 id="rss">RSS</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/eduncan911/podcast">podcast</a> - iTunes
|
||
Compliant and RSS 2.0 Podcast Generator in Golang</li>
|
||
</ul>
|
||
<h3 id="utilitymiscellaneous">Utility/Miscellaneous</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/mattn/go-runewidth">go-runewidth</a> -
|
||
Functions to get fixed width of the character or string.</li>
|
||
<li><a
|
||
href="https://github.com/trubitsyn/go-zero-width">go-zero-width</a> -
|
||
Zero-width character detection and removal for Go.</li>
|
||
<li><a href="https://github.com/codemodus/kace">kace</a> - Common case
|
||
conversions covering common initialisms.</li>
|
||
<li><a href="https://github.com/striker2000/petrovich">petrovich</a> -
|
||
Petrovich is the library which inflects Russian names to given
|
||
grammatical case.</li>
|
||
<li><a href="https://github.com/yourbasic/radix">radix</a> - Fast string
|
||
sorting algorithm.</li>
|
||
<li><a href="https://github.com/Dynom/TySug">TySug</a> - Alternative
|
||
suggestions with respect to keyboard layouts.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="third-party-apis">Third-party APIs</h2>
|
||
<p><em>Libraries for accessing third party APIs.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/mehanizm/airtable">airtable</a> - Go
|
||
client library for the <a href="https://airtable.com/api">Airtable
|
||
API</a>.</li>
|
||
<li><a
|
||
href="https://github.com/ngs/go-amazon-product-advertising-api">amazon-product-advertising-api</a>
|
||
- Go Client Library for <a
|
||
href="https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html">Amazon
|
||
Product Advertising API</a>.</li>
|
||
<li><a href="https://github.com/ChimeraCoder/anaconda">anaconda</a> - Go
|
||
client library for the Twitter 1.1 API.</li>
|
||
<li><a
|
||
href="https://github.com/Kachit/appstore-sdk-go">appstore-sdk-go</a> -
|
||
Unofficial Golang SDK for AppStore Connect API.</li>
|
||
<li><a href="https://github.com/aws/aws-sdk-go-v2">aws-sdk-go</a> - The
|
||
official AWS SDK for the Go programming language.</li>
|
||
<li><a href="https://github.com/OTA-Insight/bqwriter">bqwriter</a> -
|
||
High Level Go Library to write data into <a
|
||
href="https://cloud.google.com/bigquery">Google BigQuery</a> at a high
|
||
throughout.</li>
|
||
<li><a href="https://github.com/naegelejd/brewerydb">brewerydb</a> - Go
|
||
library for accessing the BreweryDB API.</li>
|
||
<li><a href="https://github.com/andygrunwald/cachet">cachet</a> - Go
|
||
client library for <a href="https://cachethq.io/">Cachet (open source
|
||
status page system)</a>.</li>
|
||
<li><a href="https://github.com/jszwedko/go-circleci">circleci</a> - Go
|
||
client library for interacting with CircleCI’s API.</li>
|
||
<li><a href="https://github.com/samuelcouch/clarifai">clarifai</a> - Go
|
||
client library for interfacing with the Clarifai API.</li>
|
||
<li><a href="https://github.com/codeship/codeship-go">codeship-go</a> -
|
||
Go client library for interacting with Codeship’s API v2.</li>
|
||
<li><a
|
||
href="https://github.com/coinpaprika/coinpaprika-api-go-client">coinpaprika-go</a>
|
||
- Go client library for interacting with Coinpaprika’s API.</li>
|
||
<li><a
|
||
href="https://github.com/rinchsan/device-check-go">device-check-go</a> -
|
||
Go client library for interacting with <a
|
||
href="https://developer.apple.com/documentation/devicecheck">iOS
|
||
DeviceCheck API</a> v1.</li>
|
||
<li><a href="https://github.com/bwmarrin/discordgo">discordgo</a> - Go
|
||
bindings for the Discord Chat API.</li>
|
||
<li><a
|
||
href="https://github.com/Kachit/dusupay-sdk-go">dusupay-sdk-go</a> -
|
||
Unofficial Dusupay payment gateway API Client for Go</li>
|
||
<li><a href="https://github.com/onrik/ethrpc">ethrpc</a> - Go bindings
|
||
for Ethereum JSON RPC API.</li>
|
||
<li><a href="https://github.com/huandu/facebook">facebook</a> - Go
|
||
Library that supports the Facebook Graph API.</li>
|
||
<li><a
|
||
href="https://github.com/Kachit/fasapay-sdk-go">fasapay-sdk-go</a> -
|
||
Unofficial Fasapay payment gateway XML API Client for Golang.</li>
|
||
<li><a href="https://github.com/maddevsio/fcm">fcm</a> - Go library for
|
||
Firebase Cloud Messaging.</li>
|
||
<li><a href="https://github.com/emiddleton/gads">gads</a> - Google
|
||
Adwords Unofficial API.</li>
|
||
<li><a href="https://github.com/bit4bit/gami">gami</a> - Go library for
|
||
Asterisk Manager Interface.</li>
|
||
<li><a href="https://github.com/Aorioli/gcm">gcm</a> - Go library for
|
||
Google Cloud Messaging.</li>
|
||
<li><a
|
||
href="https://github.com/codingsince1985/geo-golang">geo-golang</a> - Go
|
||
Library to access <a
|
||
href="https://developers.google.com/maps/documentation/geocoding/intro">Google
|
||
Maps</a>, <a
|
||
href="https://developer.mapquest.com/documentation/geocoding-api/">MapQuest</a>,
|
||
<a
|
||
href="https://developer.mapquest.com/documentation/open/nominatim-search">Nominatim</a>,
|
||
<a href="https://opencagedata.com/api">OpenCage</a>, <a
|
||
href="https://msdn.microsoft.com/en-us/library/ff701715.aspx">Bing</a>,
|
||
<a href="https://www.mapbox.com/developers/api/geocoding/">Mapbox</a>,
|
||
and <a
|
||
href="https://wiki.openstreetmap.org/wiki/Nominatim">OpenStreetMap</a>
|
||
geocoding / reverse geocoding APIs.</li>
|
||
<li><a href="https://github.com/google/go-github">github</a> - Go
|
||
library for accessing the GitHub REST API v3.</li>
|
||
<li><a href="https://github.com/shurcooL/githubql">githubql</a> - Go
|
||
library for accessing the GitHub GraphQL API v4.</li>
|
||
<li><a
|
||
href="https://github.com/ctreminiom/go-atlassian">go-atlassian</a> - Go
|
||
library for accessing the <a
|
||
href="https://www.atlassian.com/enterprise/cloud">Atlassian Cloud</a>
|
||
services (Jira, Jira Service Management, Jira Agile, Confluence, Admin
|
||
Cloud)</li>
|
||
<li><a href="https://github.com/circa10a/go-aws-news">go-aws-news</a> -
|
||
Go application and library to fetch what’s new from AWS.</li>
|
||
<li><a href="https://github.com/axelspringer/go-chronos">go-chronos</a>
|
||
- Go library for interacting with the <a
|
||
href="https://mesos.github.io/chronos/">Chronos</a> Job Scheduler</li>
|
||
<li><a href="https://github.com/PaulRosset/go-hacknews">go-hacknews</a>
|
||
- Tiny Go client for HackerNews API.</li>
|
||
<li><a href="https://github.com/abdullahselek/go-here">go-here</a> - Go
|
||
client library around the HERE location based APIs.</li>
|
||
<li><a href="https://github.com/wneessen/go-hibp">go-hibp</a> - Simple
|
||
Go binding to the “Have I Been Pwned” APIs.</li>
|
||
<li><a href="https://github.com/koffeinsource/go-imgur">go-imgur</a> -
|
||
Go client library for <a href="https://imgur.com">imgur</a></li>
|
||
<li><a href="https://github.com/andygrunwald/go-jira">go-jira</a> - Go
|
||
client library for <a
|
||
href="https://www.atlassian.com/software/jira">Atlassian JIRA</a></li>
|
||
<li><a href="https://github.com/go-lark/lark">go-lark</a> - An
|
||
easy-to-use unofficial SDK for <a
|
||
href="https://open.feishu.cn/">Feishu</a> and <a
|
||
href="https://open.larksuite.com/">Lark</a> Open Platform.</li>
|
||
<li><a href="https://github.com/gambol99/go-marathon">go-marathon</a> -
|
||
Go library for interacting with Mesosphere’s Marathon PAAS.</li>
|
||
<li><a
|
||
href="https://github.com/nstratos/go-myanimelist">go-myanimelist</a> -
|
||
Go client library for accessing the <a
|
||
href="https://myanimelist.net/apiconfig/references/api/v2">MyAnimeList
|
||
API</a>.</li>
|
||
<li><a href="https://github.com/sashabaranov/go-openai">go-openai</a> -
|
||
OpenAI ChatGPT, DALL·E, Whisper API library for Go.</li>
|
||
<li><a
|
||
href="https://github.com/manuelbcd/go-openproject">go-openproject</a> -
|
||
Go client library for interacting with <a
|
||
href="https://docs.openproject.org/api/">OpenProject</a> API.</li>
|
||
<li><a
|
||
href="https://github.com/rbretecher/go-postman-collection">go-postman-collection</a>
|
||
- Go module to work with <a
|
||
href="https://learning.getpostman.com/docs/postman/collections/creating-collections/">Postman
|
||
Collections</a> (compatible with Insomnia).</li>
|
||
<li><a href="https://github.com/mvrilo/go-redoc">go-redoc</a> - Embedded
|
||
OpenAPI/Swagger documentation ui for Go using <a
|
||
href="https://redocly.com/">ReDoc</a>.</li>
|
||
<li><a
|
||
href="https://github.com/chriscross0/go-restcountries">go-restcountries</a>
|
||
- Go library for the <a href="https://countrylayer.com/">REST Countries
|
||
API</a>.</li>
|
||
<li><a href="https://github.com/esurdam/go-sophos">go-sophos</a> - Go
|
||
client library for the <a
|
||
href="https://www.sophos.com/en-us/medialibrary/PDFs/documentation/UTMonAWS/Sophos-UTM-RESTful-API.pdf?la=en">Sophos
|
||
UTM REST API</a> with zero dependencies.</li>
|
||
<li><a href="https://github.com/sergioaugrod/go-sptrans">go-sptrans</a>
|
||
- Go client library for the SPTrans Olho Vivo API.</li>
|
||
<li><a href="https://github.com/esurdam/go-swagger-ui">go-swagger-ui</a>
|
||
- Go library containing precompiled <a
|
||
href="https://swagger.io/tools/swagger-ui/">Swagger UI</a> for serving
|
||
swagger json.</li>
|
||
<li><a href="https://gitlab.com/toby3d/telegraph">go-telegraph</a> -
|
||
Telegraph publishing platform API client.</li>
|
||
<li><a
|
||
href="https://github.com/andygrunwald/go-trending">go-trending</a> - Go
|
||
library for accessing <a href="https://github.com/trending">trending
|
||
repositories</a> and <a
|
||
href="https://github.com/trending/developers">developers</a> at
|
||
Github.</li>
|
||
<li><a href="https://github.com/dghubble/go-twitter">go-twitter</a> - Go
|
||
client library for the Twitter v1.1 APIs.</li>
|
||
<li><a href="https://github.com/hbagdi/go-unsplash">go-unsplash</a> - Go
|
||
client library for the <a href="https://unsplash.com">Unsplash.com</a>
|
||
API.</li>
|
||
<li><a href="https://github.com/nishanths/go-xkcd">go-xkcd</a> - Go
|
||
client for the xkcd API.</li>
|
||
<li><a href="https://git.iglou.eu/Production/go-yapla">go-yapla</a> - Go
|
||
client library for the Yapla v2.0 API.</li>
|
||
<li><a href="https://github.com/staskobzar/goagi">goagi</a> - Go library
|
||
to build Asterisk PBX agi/fastagi applications.</li>
|
||
<li><a href="https://github.com/staskobzar/goami2">goami2</a> - AMI v2
|
||
library for Asterisk PBX.</li>
|
||
<li><a href="https://github.com/FreeLeh/GoFreeDB">GoFreeDB</a> - Golang
|
||
library providing common and simple database abstractions on top of
|
||
Google Sheets.</li>
|
||
<li><a href="https://github.com/groovili/gogtrends">gogtrends</a> -
|
||
Google Trends Unofficial API.</li>
|
||
<li><a href="https://github.com/cyruzin/golang-tmdb">golang-tmdb</a> -
|
||
Golang wrapper for The Movie Database API v3.</li>
|
||
<li><a href="https://github.com/mamal72/golyrics">golyrics</a> -
|
||
Golyrics is a Go library to fetch music lyrics data from the Wikia
|
||
website.</li>
|
||
<li><a href="https://github.com/MonaxGT/gomalshare">gomalshare</a> - Go
|
||
library MalShare API <a
|
||
href="https://www.malshare.com/">malshare.com</a></li>
|
||
<li><a
|
||
href="https://github.com/michiwend/gomusicbrainz">GoMusicBrainz</a> - Go
|
||
MusicBrainz WS2 client library.</li>
|
||
<li><a href="https://github.com/google/google-api-go-client">google</a>
|
||
- Auto-generated Google APIs for Go.</li>
|
||
<li><a
|
||
href="https://github.com/chonthu/go-google-analytics">google-analytics</a>
|
||
- Simple wrapper for easy google analytics reporting.</li>
|
||
<li><a
|
||
href="https://github.com/GoogleCloudPlatform/gcloud-golang">google-cloud</a>
|
||
- Google Cloud APIs Go Client Library.</li>
|
||
<li><a
|
||
href="https://github.com/ngs/go-google-email-audit-api">google-email-audit-api</a>
|
||
- Go client library for <a
|
||
href="https://developers.google.com/admin-sdk/email-audit/">Google G
|
||
Suite Email Audit API</a>.</li>
|
||
<li><a
|
||
href="https://github.com/n0madic/google-play-scraper">google-play-scraper</a>
|
||
- Get data from Google Play Store.</li>
|
||
<li><a href="https://github.com/utekaravinash/gopaapi5">gopaapi5</a> -
|
||
Go Client Library for <a
|
||
href="https://webservices.amazon.com/paapi5/documentation/">Amazon
|
||
Product Advertising API 5.0</a>.</li>
|
||
<li><a href="https://github.com/navidys/gopensky">gopensky</a> - Go
|
||
client implementation for <a href="https://opensky-network.org/">OpenSKY
|
||
Network</a> live’s API (airspace ADS-B and Mode S data).</li>
|
||
<li><a href="https://github.com/koltyakov/gosip">gosip</a> - Client
|
||
library for SharePoint.</li>
|
||
<li><a href="https://github.com/jsgilmore/gostorm">gostorm</a> - 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.</li>
|
||
<li><a href="https://github.com/andybons/hipchat">hipchat</a> - This
|
||
project implements a golang client library for the Hipchat API.</li>
|
||
<li><a href="https://github.com/daneharrigan/hipchat">hipchat (xmpp)</a>
|
||
- A golang package to communicate with HipChat over XMPP.</li>
|
||
<li><a href="https://github.com/Henry-Sarabia/igdb">igdb</a> - Go client
|
||
for the <a href="https://api.igdb.com/">Internet Game Database
|
||
API</a>.</li>
|
||
<li><a
|
||
href="https://github.com/ip2location/ip2location-io-go">ip2location-io-go</a>
|
||
- Go wrapper for the IP2Location.io API <a
|
||
href="https://www.ip2location.io/">IP2Location.io</a>.</li>
|
||
<li><a href="https://github.com/icelain/jokeapi">jokeapi-go</a> - Go
|
||
client for <a href="https://sv443.net/jokeapi/v2/">JokeAPI</a>.</li>
|
||
<li><a href="https://github.com/chyroc/lark">lark</a> - <a
|
||
href="https://open.feishu.cn/">Feishu</a>/<a
|
||
href="https://open.larksuite.com/">Lark</a> Open API Go SDK, Support ALL
|
||
Open API and Event Callback.</li>
|
||
<li><a href="https://github.com/ansd/lastpass-go">lastpass-go</a> - Go
|
||
client library for the <a href="https://www.lastpass.com/">LastPass</a>
|
||
API.</li>
|
||
<li><a href="https://github.com/clevabit/libgoffi">libgoffi</a> -
|
||
Library adapter toolbox for native <a
|
||
href="https://sourceware.org/libffi/">libffi</a> integration</li>
|
||
<li><a href="https://github.com/Medium/medium-sdk-go">Medium</a> -
|
||
Golang SDK for Medium’s OAuth2 API.</li>
|
||
<li><a href="https://github.com/andygrunwald/megos">megos</a> - Client
|
||
library for accessing an <a href="https://mesos.apache.org/">Apache
|
||
Mesos</a> cluster.</li>
|
||
<li><a href="https://github.com/minio/minio-go">minio-go</a> - Minio Go
|
||
Library for Amazon S3 compatible cloud storage.</li>
|
||
<li><a href="https://github.com/dukex/mixpanel">mixpanel</a> - Mixpanel
|
||
is a library for tracking events and sending Mixpanel profile updates to
|
||
Mixpanel from your go applications.</li>
|
||
<li><a href="https://github.com/jellydator/newsapi-go">newsapi-go</a> -
|
||
Go client for <a href="https://newsapi.org/">NewsAPI</a>.</li>
|
||
<li><a href="https://github.com/otiai10/openaigo">openaigo</a> - OpenAI
|
||
GPT3/GPT3.5 ChatGPT API client library for Go.</li>
|
||
<li><a href="https://github.com/mxpv/patreon-go">patreon-go</a> - Go
|
||
library for Patreon API.</li>
|
||
<li><a href="https://github.com/logpacker/PayPal-Go-SDK">paypal</a> -
|
||
Wrapper for PayPal payment API.</li>
|
||
<li><a href="https://github.com/playlyfe/playlyfe-go-sdk">playlyfe</a> -
|
||
The Playlyfe Rest API Go SDK.</li>
|
||
<li><a href="https://github.com/gregdel/pushover">pushover</a> - Go
|
||
wrapper for the Pushover API.</li>
|
||
<li><a href="https://github.com/dimuska139/rawg-sdk-go">rawg-sdk-go</a>
|
||
- Go library for the <a href="https://rawg.io/">RAWG Video Games
|
||
Database</a> API</li>
|
||
<li><a href="https://github.com/Omie/rrdaclient">rrdaclient</a> - Go
|
||
Library to access statdns.com API, which is in turn RRDA API. DNS
|
||
Queries over HTTP.</li>
|
||
<li><a href="https://github.com/rapito/go-shopify">shopify</a> - Go
|
||
Library to make CRUD request to the Shopify API.</li>
|
||
<li><a href="https://github.com/rhnvrm/simples3">simples3</a> - Simple
|
||
no frills AWS S3 Library using REST with V4 Signing written in Go.</li>
|
||
<li><a href="https://github.com/slack-go/slack">slack</a> - Slack API in
|
||
Go.</li>
|
||
<li><a href="https://github.com/sergiotapia/smitego">smite</a> - Go
|
||
package to wraps access to the Smite game API.</li>
|
||
<li><a href="https://github.com/rapito/go-spotify">spotify</a> - Go
|
||
Library to access Spotify WEB API.</li>
|
||
<li><a href="https://github.com/sostronk/go-steam">steam</a> - Go
|
||
Library to interact with Steam game servers.</li>
|
||
<li><a href="https://github.com/stripe/stripe-go">stripe</a> - Go client
|
||
for the Stripe API.</li>
|
||
<li><a href="https://github.com/zc2638/swag">swag</a> - No comments,
|
||
simple go wrapper to create swagger 2.0 compatible APIs. Support most
|
||
routing frameworks, such as built-in, gin, chi, mux, echo, httprouter,
|
||
fasthttp and more.</li>
|
||
<li><a href="https://github.com/dietsche/textbelt">textbelt</a> - Go
|
||
client for the textbelt.com txt messaging API.</li>
|
||
<li><a href="https://github.com/poorny/translate">translate</a> - Go
|
||
online translation package.</li>
|
||
<li><a href="https://github.com/adlio/trello">Trello</a> - Go wrapper
|
||
for the Trello API.</li>
|
||
<li><a
|
||
href="https://github.com/mrbenosborne/tripadvisor-golang">TripAdvisor</a>
|
||
- Go wrapper for the TripAdvisor API.</li>
|
||
<li><a href="https://github.com/mattcunningham/gumblr">tumblr</a> - Go
|
||
wrapper for the Tumblr v2 API.</li>
|
||
<li><a
|
||
href="https://github.com/n0madic/twitter-scraper">twitter-scraper</a> -
|
||
Scrape the Twitter Frontend API without authentication and limits.</li>
|
||
<li><a href="https://github.com/bitfield/uptimerobot">uptimerobot</a> -
|
||
Go wrapper and command-line client for the Uptime Robot v2 API.</li>
|
||
<li><a href="https://github.com/verifid/vl-go">vl-go</a> - Go client
|
||
library around the VerifID identity verification layer API.</li>
|
||
<li><a href="https://github.com/go-playground/webhooks">webhooks</a> -
|
||
Webhook receiver for GitHub and Bitbucket.</li>
|
||
<li><a href="https://github.com/wit-ai/wit-go">wit-go</a> - Go client
|
||
for wit.ai HTTP API.</li>
|
||
<li><a href="https://github.com/brunomvsouza/ynab.go">ynab</a> - Go
|
||
wrapper for the YNAB API.</li>
|
||
<li><a href="https://github.com/gojuno/go-zooz">zooz</a> - Go client for
|
||
the Zooz API.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="utilities">Utilities</h2>
|
||
<p><em>General utilities and tools to make your life easier.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/cosmtrek/air">air</a> - Air - Live
|
||
reload for Go apps.</li>
|
||
<li><a href="https://github.com/topfreegames/apm">apm</a> - Process
|
||
manager for Golang applications with an HTTP API.</li>
|
||
<li><a href="https://github.com/icza/backscanner">backscanner</a> - A
|
||
scanner similar to bufio.Scanner, but it reads and returns lines in
|
||
reverse order, starting at a given position and going backward.</li>
|
||
<li><a href="https://github.com/wesovilabs/beyond">beyond</a> - The Go
|
||
tool that will drive you to the AOP world!</li>
|
||
<li><a href="https://github.com/Henry-Sarabia/blank">blank</a> - Verify
|
||
or remove blanks and whitespace from strings.</li>
|
||
<li><a href="https://github.com/sinhashubham95/bleep">bleep</a> -
|
||
Perform any number of actions on any set of OS signals in Go.</li>
|
||
<li><a href="https://github.com/tmrts/boilr">boilr</a> - Blazingly fast
|
||
CLI tool for creating projects from boilerplate templates.</li>
|
||
<li><a href="https://github.com/miniscruff/changie">changie</a> -
|
||
Automated changelog tool for preparing releases with lots of
|
||
customization options.</li>
|
||
<li><a href="https://github.com/antham/chyle">chyle</a> - Changelog
|
||
generator using a git repository with multiple configuration
|
||
possibilities.</li>
|
||
<li><a href="https://github.com/cep21/circuit">circuit</a> - An
|
||
efficient and feature complete Hystrix like Go implementation of the
|
||
circuit breaker pattern.</li>
|
||
<li><a
|
||
href="https://github.com/rubyist/circuitbreaker">circuitbreaker</a> -
|
||
Circuit Breakers in Go.</li>
|
||
<li><a href="https://github.com/golang-design/clipboard">clipboard</a> -
|
||
📋 cross-platform clipboard package in Go.</li>
|
||
<li><a href="https://github.com/jonboulle/clockwork">clockwork</a> - A
|
||
simple fake clock for golang.</li>
|
||
<li><a href="https://github.com/SimonBaeumer/cmd">cmd</a> - Library for
|
||
executing shell commands on osx, windows and linux.</li>
|
||
<li><a href="https://github.com/txgruppi/command">command</a> - Command
|
||
pattern for Go with thread safe serial and parallel dispatcher.</li>
|
||
<li><a
|
||
href="https://github.com/Boeing/config-file-validator">config-file-validator</a>
|
||
- Cross Platform tool to validate configuration files.</li>
|
||
<li><a href="https://github.com/contextplus/contextplus">contextplus</a>
|
||
- Package contextplus provide more easy to use functions for
|
||
contexts.</li>
|
||
<li><a href="https://github.com/gotidy/copy">copy</a> - Package for fast
|
||
copying structs of different types.</li>
|
||
<li><a href="https://github.com/jutkko/copy-pasta">copy-pasta</a> -
|
||
Universal multi-workstation clipboard that uses S3 like backend for the
|
||
storage.</li>
|
||
<li><a href="https://github.com/biter777/countries">countries</a> - Full
|
||
implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and
|
||
IANA ccTLD standards.</li>
|
||
<li><a href="https://github.com/pioz/countries">countries</a> - All you
|
||
need when you are working with countries in Go.</li>
|
||
<li><a href="https://github.com/create-go-app/cli">create-go-app</a> - A
|
||
powerful CLI for create a new production-ready project with backend
|
||
(Golang), frontend (JavaScript, TypeScript) & deploy automation
|
||
(Ansible, Docker) by running one command.</li>
|
||
<li><a href="https://github.com/Gituser143/cryptgo">cryptgo</a> -
|
||
Crytpgo is a TUI based application written purely in Go to monitor and
|
||
observe cryptocurrency prices in real time!</li>
|
||
<li><a href="https://github.com/bcicen/ctop">ctop</a> - <a
|
||
href="https://ctop.sh">Top-like</a> interface (e.g. htop) for container
|
||
metrics.</li>
|
||
<li><a href="https://github.com/posener/ctxutil">ctxutil</a> - A
|
||
collection of utility functions for contexts.</li>
|
||
<li><a href="https://github.com/shockerli/cvt">cvt</a> - Easy and safe
|
||
convert any value to another type.</li>
|
||
<li><a href="https://github.com/nikogura/dbt">dbt</a> - A framework for
|
||
running self-updating signed binaries from a central, trusted
|
||
repository.</li>
|
||
<li><a href="https://github.com/vrecan/death">Death</a> - Managing go
|
||
application shutdown with signals.</li>
|
||
<li><a href="https://github.com/ulule/deepcopier">Deepcopier</a> -
|
||
Simple struct copying for Go.</li>
|
||
<li><a href="https://github.com/derekparker/delve">delve</a> - Go
|
||
debugger.</li>
|
||
<li><a href="https://github.com/wagoodman/dive">dive</a> - A tool for
|
||
exploring each layer in a Docker image.</li>
|
||
<li><a href="https://github.com/kirillDanshin/dlog">dlog</a> -
|
||
Compile-time controlled logger to make your release smaller without
|
||
removing debug calls.</li>
|
||
<li><a href="https://github.com/megaease/easeprobe">EaseProbe</a> - 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.</li>
|
||
<li><a href="https://github.com/reugn/equalizer">equalizer</a> - Quota
|
||
manager and rate limiter collection for Go.</li>
|
||
<li><a href="https://github.com/cristianoliveira/ergo">ergo</a> - The
|
||
management of multiple local services running over different ports made
|
||
easy.</li>
|
||
<li><a href="https://github.com/nullne/evaluator">evaluator</a> -
|
||
Evaluate an expression dynamically based on s-expression. It’s simple
|
||
and easy to extend.</li>
|
||
<li><a href="https://github.com/h2non/filetype">filetype</a> - Small
|
||
package to infer the file type checking the magic numbers
|
||
signature.</li>
|
||
<li><a href="https://github.com/yaronsumel/filler">filler</a> - small
|
||
utility to fill structs using “fill” tag.</li>
|
||
<li><a href="https://github.com/gookit/filter">filter</a> - provide
|
||
filtering, sanitizing, and conversion of Go data.</li>
|
||
<li><a href="https://github.com/junegunn/fzf">fzf</a> - Command-line
|
||
fuzzy finder written in Go.</li>
|
||
<li><a href="https://github.com/go-playground/generate">generate</a> -
|
||
runs go generate recursively on a specified path or environment variable
|
||
and can filter by regex.</li>
|
||
<li><a href="https://github.com/antham/ghokin">ghokin</a> - Parallelized
|
||
formatter with no external dependencies for gherkin (cucumber,
|
||
behat…).</li>
|
||
<li><a href="https://github.com/git-time-metric/gtm">git-time-metric</a>
|
||
- Simple, seamless, lightweight time tracking for Git.</li>
|
||
<li><a href="https://github.com/isacikgoz/gitbatch">gitbatch</a> -
|
||
manage your git repositories in one place.</li>
|
||
<li><a
|
||
href="https://github.com/sinhashubham95/go-actuator">go-actuator</a> -
|
||
Production ready features for Go based web frameworks.</li>
|
||
<li><a href="https://github.com/asticode/go-astitodo">go-astitodo</a> -
|
||
Parse TODOs in your GO code.</li>
|
||
<li><a
|
||
href="https://github.com/wendigo/go-bind-plugin">go-bind-plugin</a> -
|
||
go:generate tool for wrapping symbols exported by golang plugins (1.8
|
||
only).</li>
|
||
<li><a href="https://github.com/gabstv/go-bsdiff">go-bsdiff</a> - Pure
|
||
Go bsdiff and bspatch libraries and CLI tools.</li>
|
||
<li><a href="https://github.com/prashantgupta24/go-clip">go-clip</a> - A
|
||
minimalistic clipboard manager for Mac.</li>
|
||
<li><a href="https://github.com/Eun/go-convert">go-convert</a> - Package
|
||
go-convert enables you to convert a value into another type.</li>
|
||
<li><a href="https://github.com/mikekonan/go-countries">go-countries</a>
|
||
- Lightweight lookup over ISO-3166 codes.</li>
|
||
<li><a href="https://github.com/ungerik/go-dry">go-dry</a> - DRY (don’t
|
||
repeat yourself) package for Go.</li>
|
||
<li><a href="https://github.com/thoas/go-funk">go-funk</a> - Modern Go
|
||
utility library which provides helpers (map, find, contains, filter,
|
||
chunk, reverse, …).</li>
|
||
<li><a href="https://github.com/Talento90/go-health">go-health</a> -
|
||
Health package simplifies the way you add health check to your
|
||
services.</li>
|
||
<li><a
|
||
href="https://github.com/mozillazg/go-httpheader">go-httpheader</a> - Go
|
||
library for encoding structs into Header fields.</li>
|
||
<li><a
|
||
href="https://github.com/karl-cardenas-coding/go-lambda-cleanup">go-lambda-cleanup</a>
|
||
- A CLI for removing unused or previous versions of AWS Lambdas.</li>
|
||
<li><a href="https://github.com/viney-shih/go-lock">go-lock</a> -
|
||
go-lock is a lock library implementing read-write mutex and read-write
|
||
trylock without starvation.</li>
|
||
<li><a
|
||
href="https://github.com/PhakornKiong/go-pattern-match">go-pattern-match</a>
|
||
- A Pattern matching library inspired by ts-pattern.</li>
|
||
<li><a href="https://github.com/chenquan/go-pkg">go-pkg</a> - A go
|
||
toolkit.</li>
|
||
<li><a
|
||
href="https://github.com/mvmaasakkers/go-problemdetails">go-problemdetails</a>
|
||
- Go package for working with Problem Details.</li>
|
||
<li><a href="https://github.com/piglig/go-qr">go-qr</a> - A native,
|
||
high-quality and minimalistic QR code generator.</li>
|
||
<li><a href="https://github.com/beefsack/go-rate">go-rate</a> - Timed
|
||
rate limiter for Go.</li>
|
||
<li><a
|
||
href="https://github.com/ikeikeikeike/go-sitemap-generator">go-sitemap-generator</a>
|
||
- XML Sitemap generator written in Go.</li>
|
||
<li><a href="https://github.com/sadlil/go-trigger">go-trigger</a> -
|
||
Go-lang global event triggerer, Register Events with an id and trigger
|
||
the event from anywhere from your project.</li>
|
||
<li><a href="https://github.com/mikekonan/go-types">go-type</a> -
|
||
Library providing Go types for store/validation and transfer of
|
||
ISO-4217, ISO-3166, and other types.</li>
|
||
<li><a href="https://github.com/carlescere/goback">goback</a> - Go
|
||
simple exponential backoff package.</li>
|
||
<li><a href="https://github.com/zerosnake0/goctx">goctx</a> - Get your
|
||
context value with high performance.</li>
|
||
<li><a href="https://github.com/VividCortex/godaemon">godaemon</a> -
|
||
Utility to write daemons.</li>
|
||
<li><a href="https://github.com/dropbox/godropbox">godropbox</a> -
|
||
Common libraries for writing Go services/applications from Dropbox.</li>
|
||
<li><a href="https://github.com/tiendc/gofn">gofn</a> - High performance
|
||
utility functions written using Generics for Go 1.18+.</li>
|
||
<li><a href="https://github.com/cosiner/gohper">gohper</a> - Various
|
||
tools/modules help for development.</li>
|
||
<li><a href="https://github.com/msempere/golarm">golarm</a> - Fire
|
||
alarms with system events.</li>
|
||
<li><a href="https://github.com/mlimaloureiro/golog">golog</a> - Easy
|
||
and lightweight CLI tool to time track your tasks.</li>
|
||
<li><a href="https://github.com/bndr/gopencils">gopencils</a> - Small
|
||
and simple package to easily consume REST APIs.</li>
|
||
<li><a
|
||
href="https://github.com/michiwend/goplaceholder">goplaceholder</a> - a
|
||
small golang lib to generate placeholder images.</li>
|
||
<li><a
|
||
href="https://github.com/philipjkim/goreadability">goreadability</a> -
|
||
Webpage summary extractor using Facebook Open Graph and arc90’s
|
||
readability.</li>
|
||
<li><a href="https://github.com/goreleaser/goreleaser">goreleaser</a> -
|
||
Deliver Go binaries as fast and easily as possible.</li>
|
||
<li><a href="https://github.com/wgliang/goreporter">goreporter</a> -
|
||
Golang tool that does static analysis, unit testing, code review and
|
||
generate code quality report.</li>
|
||
<li><a href="https://github.com/linxGnu/goseaweedfs">goseaweedfs</a> -
|
||
SeaweedFS client library with almost full features.</li>
|
||
<li><a href="https://github.com/ik5/gostrutils">gostrutils</a> -
|
||
Collections of string manipulation and conversion functions.</li>
|
||
<li><a href="https://github.com/subosito/gotenv">gotenv</a> - Load
|
||
environment variables from <code>.env</code> or any
|
||
<code>io.Reader</code> in Go.</li>
|
||
<li><a href="https://github.com/maja42/goval">goval</a> - Evaluate
|
||
arbitrary expressions in Go.</li>
|
||
<li><a href="https://github.com/tenntenn/gpath">gpath</a> - Library to
|
||
simplify access struct fields with Go’s expression in reflection.</li>
|
||
<li><a href="https://github.com/skovtunenko/graterm">graterm</a> -
|
||
Provides primitives to perform ordered (sequential/concurrent) GRAceful
|
||
TERMination (aka shutdown) in Go application.</li>
|
||
<li><a href="https://github.com/pesos/grofer">grofer</a> - A system and
|
||
resource monitoring tool written in Golang!</li>
|
||
<li><a href="https://github.com/novalagung/gubrak">gubrak</a> - Golang
|
||
utility library with syntactic sugar. It’s like lodash, but for
|
||
golang.</li>
|
||
<li><a href="https://github.com/miguelpragier/handy">handy</a> - Many
|
||
utilities and helpers like string handlers/formatters and
|
||
validators.</li>
|
||
<li><a href="https://github.com/guumaster/hostctl">hostctl</a> - A CLI
|
||
tool to manage /etc/hosts with easy commands.</li>
|
||
<li><a href="https://github.com/htcat/htcat">htcat</a> - Parallel and
|
||
Pipelined HTTP GET Utility.</li>
|
||
<li><a href="https://github.com/github/hub">hub</a> - wrap git commands
|
||
with additional functionality to interact with github from the
|
||
terminal.</li>
|
||
<li><a href="https://github.com/afex/hystrix-go">hystrix-go</a> -
|
||
Implements Hystrix patterns of programmer-defined fallbacks aka circuit
|
||
breaker.</li>
|
||
<li><a href="https://github.com/immortal/immortal">immortal</a> - *nix
|
||
cross-platform (OS agnostic) supervisor.</li>
|
||
<li><a href="https://github.com/mengzhuo/intrinsic">intrinsic</a> - Use
|
||
x86 SIMD without writing any assembly code.</li>
|
||
<li><a href="https://github.com/clevergo/jsend">jsend</a> - JSend’s
|
||
implementation written in Go.</li>
|
||
<li><a href="https://github.com/gsamokovarov/jump">jump</a> - Jump helps
|
||
you navigate faster by learning your habits.</li>
|
||
<li><a href="https://github.com/kazhuravlev/just">just</a> - Just a
|
||
collection of useful functions for working with generic data
|
||
structures.</li>
|
||
<li><a href="https://github.com/wesovilabs/koazee">koazee</a> - Library
|
||
inspired in Lazy evaluation and functional programming that takes the
|
||
hassle out of working with arrays.</li>
|
||
<li><a href="https://github.com/duke-git/lancet">lancet</a> - A
|
||
comprehensive, efficient, and reusable util function library of go.</li>
|
||
<li><a href="https://github.com/aplescia-chwy/lets-go">lets-go</a> - Go
|
||
module that provides common utilities for Cloud Native REST API
|
||
development. Also contains AWS Specific utilities.</li>
|
||
<li><a href="https://github.com/mennanov/limiters">limiters</a> - Rate
|
||
limiters for distributed applications in Golang with configurable
|
||
back-ends and distributed locks.</li>
|
||
<li><a href="https://github.com/samber/lo">lo</a> - A Lodash like Go
|
||
library based on Go 1.18+ Generics (map, filter, contains, find…)</li>
|
||
<li><a href="https://github.com/kazu/loncha">loncha</a> - A
|
||
high-performance slice Utilities.</li>
|
||
<li><a href="https://github.com/jaschaephraim/lrserver">lrserver</a> -
|
||
LiveReload server for Go.</li>
|
||
<li><a href="https://github.com/alajmo/mani">mani</a> - CLI tool to help
|
||
you manage multiple repositories.</li>
|
||
<li><a href="https://github.com/minio/mc">mc</a> - Minio Client provides
|
||
minimal tools to work with Amazon S3 compatible cloud storage and
|
||
filesystems.</li>
|
||
<li><a href="https://github.com/imdario/mergo">mergo</a> - Helper to
|
||
merge structs and maps in Golang. Useful for configuration default
|
||
values, avoiding messy if-statements.</li>
|
||
<li><a href="https://github.com/zRedShift/mimemagic">mimemagic</a> -
|
||
Pure Go ultra performant MIME sniffing library/utility.</li>
|
||
<li><a href="https://github.com/aofei/mimesniffer">mimesniffer</a> - A
|
||
MIME type sniffer for Go.</li>
|
||
<li><a href="https://github.com/gabriel-vasile/mimetype">mimetype</a> -
|
||
Package for MIME type detection based on magic numbers.</li>
|
||
<li><a href="https://github.com/tdewolff/minify">minify</a> - Fast
|
||
minifiers for HTML, CSS, JS, XML, JSON and SVG file formats.</li>
|
||
<li><a href="https://github.com/icza/minquery">minquery</a> - MongoDB /
|
||
mgo.v2 query that supports efficient pagination (cursors to continue
|
||
listing documents where we left off).</li>
|
||
<li><a href="https://github.com/StabbyCutyou/moldova">moldova</a> -
|
||
Utility for generating random data based on an input template.</li>
|
||
<li><a href="https://github.com/davrodpin/mole">mole</a> - cli app to
|
||
easily create ssh tunnels.</li>
|
||
<li><a
|
||
href="https://github.com/gobeam/mongo-go-pagination">mongo-go-pagination</a>
|
||
- Mongodb Pagination for official mongodb/mongo-go-driver package which
|
||
supports both normal queries and Aggregation pipelines.</li>
|
||
<li><a href="https://github.com/linxGnu/mssqlx">mssqlx</a> - Database
|
||
client library, proxy for any master slave, master master structures.
|
||
Lightweight and auto balancing in mind.</li>
|
||
<li><a href="https://github.com/VividCortex/multitick">multitick</a> -
|
||
Multiplexor for aligned tickers.</li>
|
||
<li><a href="https://github.com/inancgumus/myhttp">myhttp</a> - Simple
|
||
API to make HTTP GET requests with timeout support.</li>
|
||
<li><a href="https://github.com/e-dard/netbug">netbug</a> - Easy remote
|
||
profiling of your services.</li>
|
||
<li><a href="https://github.com/chrispassas/nfdump">nfdump</a> - Read
|
||
nfdump netflow files.</li>
|
||
<li><a href="https://github.com/pokanop/nostromo">nostromo</a> - CLI for
|
||
building powerful aliases.</li>
|
||
<li><a href="https://github.com/rekby/objwalker">objwalker</a> - Walk by
|
||
go objects with reflection.</li>
|
||
<li><a href="https://github.com/xta/okrun">okrun</a> - go run error
|
||
steamroller.</li>
|
||
<li><a href="https://github.com/btnguyen2k/olaf">olaf</a> - Twitter
|
||
Snowflake implemented in Go.</li>
|
||
<li><a href="https://github.com/adelowo/onecache">onecache</a> - Caching
|
||
library with support for multiple backend stores (Redis, Memcached,
|
||
filesystem etc).</li>
|
||
<li><a href="https://github.com/maruel/panicparse">panicparse</a> -
|
||
Groups similar goroutines and colorizes stack dump.</li>
|
||
<li><a
|
||
href="https://github.com/alexpantyukhin/go-pattern-match">pattern-match</a>
|
||
- Pattern matching library.</li>
|
||
<li><a href="https://github.com/peco/peco">peco</a> - Simplistic
|
||
interactive filtering tool.</li>
|
||
<li><a href="https://github.com/arthurkushman/pgo">pgo</a> - Convenient
|
||
functions for PHP community.</li>
|
||
<li><a href="https://github.com/VividCortex/pm">pm</a> - Process
|
||
(i.e. goroutine) manager with an HTTP API.</li>
|
||
<li><a href="https://github.com/xorcare/pointer">pointer</a> - Package
|
||
pointer contains helper routines for simplifying the creation of
|
||
optional fields of basic type.</li>
|
||
<li><a href="https://github.com/gotidy/ptr">ptr</a> - Package that
|
||
provide functions for simplified creation of pointers from constants of
|
||
basic types.</li>
|
||
<li><a href="https://github.com/zpatrick/rclient">rclient</a> -
|
||
Readable, flexible, simple-to-use client for REST APIs.</li>
|
||
<li><a href="https://github.com/muir/reflectutils">reflectutils</a> -
|
||
Helpers for working with reflection: struct tag parsing; recursive
|
||
walking; fill value from string.</li>
|
||
<li><a
|
||
href="https://github.com/Unrud/remote-touchpad">remote-touchpad</a> -
|
||
Control mouse and keyboard from a smartphone.</li>
|
||
<li><a href="https://github.com/ssgreg/repeat">repeat</a> - Go
|
||
implementation of different backoff strategies useful for retrying
|
||
operations and heartbeating.</li>
|
||
<li><a href="https://github.com/mozillazg/request">request</a> - Go HTTP
|
||
Requests for Humans™.</li>
|
||
<li><a href="https://github.com/ivpusic/rerun">rerun</a> - Recompiling
|
||
and rerunning go apps when source changes.</li>
|
||
<li><a href="https://github.com/edermanoel94/rest-go">rest-go</a> - A
|
||
package that provide many helpful methods for working with rest
|
||
api.</li>
|
||
<li><a href="https://github.com/kamilsk/retry">retry</a> - The most
|
||
advanced functional mechanism to perform actions repetitively until
|
||
successful.</li>
|
||
<li><a href="https://github.com/percolate/retry">retry</a> - A simple
|
||
but highly configurable retry package for Go.</li>
|
||
<li><a href="https://github.com/thedevsaddam/retry">retry</a> - Simple
|
||
and easy retry mechanism package for Go.</li>
|
||
<li><a href="https://github.com/shafreeck/retry">retry</a> - A pretty
|
||
simple library to ensure your work to be done.</li>
|
||
<li><a href="https://github.com/avast/retry-go">retry-go</a> - Simple
|
||
library for retry mechanism.</li>
|
||
<li><a href="https://github.com/rafaeljesus/retry-go">retry-go</a> -
|
||
Retrying made simple and easy for golang.</li>
|
||
<li><a href="https://github.com/VividCortex/robustly">robustly</a> -
|
||
Runs functions resiliently, catching and restarting panics.</li>
|
||
<li><a href="https://github.com/ferama/rospo">rospo</a> - Simple and
|
||
reliable ssh tunnels with embedded ssh server in Golang.</li>
|
||
<li><a href="https://github.com/blockloop/scan">scan</a> - Scan golang
|
||
<code>sql.Rows</code> directly to structs, slices, or primitive
|
||
types.</li>
|
||
<li><a href="https://github.com/wroge/scan">scan</a> - Scan sql rows
|
||
into any type powered by generics.</li>
|
||
<li><a href="https://github.com/georgysavva/scany">scany</a> - Library
|
||
for scanning data from a database into Go structs and more.</li>
|
||
<li><a href="https://github.com/syntaqx/serve">serve</a> - A static http
|
||
server anywhere you need.</li>
|
||
<li><a href="https://github.com/nofeaturesonlybugs/set">set</a> -
|
||
Performant and flexible struct mapping and loose type conversion.</li>
|
||
<li><a href="https://github.com/ztrue/shutdown">shutdown</a> - App
|
||
shutdown hooks for <code>os.Signal</code> handling.</li>
|
||
<li><a href="https://github.com/chrispassas/silk">silk</a> - Read silk
|
||
netflow files.</li>
|
||
<li><a href="https://github.com/psampaz/slice">slice</a> - Type-safe
|
||
functions for common Go slice operations.</li>
|
||
<li><a href="https://github.com/Henry-Sarabia/sliceconv">sliceconv</a> -
|
||
Slice conversion between primitive types.</li>
|
||
<li><a href="https://github.com/leaanthony/slicer">slicer</a> - Makes
|
||
working with slices easier.</li>
|
||
<li><a href="https://github.com/jfcg/sorty">sorty</a> - Fast Concurrent
|
||
/ Parallel Sorting.</li>
|
||
<li><a href="https://github.com/jmoiron/sqlx">sqlx</a> - provides a set
|
||
of extensions on top of the excellent built-in database/sql
|
||
package.</li>
|
||
<li><a href="https://github.com/shoobyban/sshman">sshman</a> - SSH
|
||
Manager for authorized_keys files on multiple remote servers.</li>
|
||
<li><a href="https://github.com/janiltonmaciel/statiks">statiks</a> -
|
||
Fast, zero-configuration, static HTTP filer server.</li>
|
||
<li><a href="https://github.com/asdine/storm">Storm</a> - Simple and
|
||
powerful toolkit for BoltDB.</li>
|
||
<li><a href="https://github.com/PumpkinSeed/structs">structs</a> -
|
||
Implement simple functions to manipulate structs.</li>
|
||
<li><a href="https://github.com/yudppp/throttle">throttle</a> - Throttle
|
||
is an object that will perform exactly one action per duration.</li>
|
||
<li><a href="https://github.com/andy2046/tik">tik</a> - Simple and easy
|
||
timing wheel package for Go.</li>
|
||
<li><a href="https://github.com/cyruzin/tome">tome</a> - Tome was
|
||
designed to paginate simple RESTful APIs.</li>
|
||
<li><a href="https://github.com/viant/toolbox">toolbox</a> - Slice, map,
|
||
multimap, struct, function, data conversion utilities. Service router,
|
||
macro evaluator, tokenizer.</li>
|
||
<li><a href="https://github.com/alxrm/ugo">ugo</a> - ugo is slice
|
||
toolbox with concise syntax for Go.</li>
|
||
<li><a href="https://github.com/esemplastic/unis">UNIS</a> - Common
|
||
Architecture™ for String Utilities in Go.</li>
|
||
<li><a href="https://github.com/owenthereal/upterm">upterm</a> - 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.</li>
|
||
<li><a href="https://github.com/knq/usql">usql</a> - usql is a universal
|
||
command-line interface for SQL databases.</li>
|
||
<li><a href="https://github.com/shomali11/util">util</a> - Collection of
|
||
useful utility functions. (strings, concurrency, manipulations, …).</li>
|
||
<li><a href="https://github.com/nikolaydubina/watchhttp">watchhttp</a> -
|
||
Run command periodically and expose latest STDOUT or its rich delta as
|
||
HTTP endpoint.</li>
|
||
<li><a href="https://github.com/reugn/wifiqr">wifiqr</a> - Wi-Fi QR Code
|
||
Generator.</li>
|
||
<li><a href="https://github.com/asciimoo/wuzz">wuzz</a> - Interactive
|
||
cli tool for HTTP inspection.</li>
|
||
<li><a href="https://github.com/monmohan/xferspdy">xferspdy</a> -
|
||
Xferspdy provides binary diff and patch library in golang.</li>
|
||
<li><a href="https://github.com/antham/yogo">yogo</a> - Check yopmail
|
||
mails from command line.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="uuid">UUID</h2>
|
||
<p><em>Libraries for working with UUIDs.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jakehl/goid">goid</a> - Generate and
|
||
Parse RFC4122 compliant V4 UUIDs.</li>
|
||
<li><a href="https://github.com/twharmon/gouid">gouid</a> - Generate
|
||
cryptographically secure random string IDs with just one
|
||
allocation.</li>
|
||
<li><a href="https://github.com/aidarkhanov/nanoid">nanoid</a> - A tiny
|
||
and efficient Go unique string ID generator.</li>
|
||
<li><a href="https://github.com/muyo/sno">sno</a> - Compact, sortable
|
||
and fast unique IDs with embedded metadata.</li>
|
||
<li><a href="https://github.com/oklog/ulid">ulid</a> - Go implementation
|
||
of ULID (Universally Unique Lexicographically Sortable Identifier).</li>
|
||
<li><a href="https://gitlab.com/skilstak/code/go/uniq">uniq</a> - No
|
||
hassle safe, fast unique identifiers with commands.</li>
|
||
<li><a href="https://github.com/agext/uuid">uuid</a> - Generate, encode,
|
||
and decode UUIDs v1 with fast or cryptographic-quality random node
|
||
identifier.</li>
|
||
<li><a href="https://github.com/gofrs/uuid">uuid</a> - Implementation of
|
||
Universally Unique Identifier (UUID). Supports both creation and parsing
|
||
of UUIDs. Actively maintained fork of satori uuid.</li>
|
||
<li><a href="https://github.com/google/uuid">uuid</a> - Go package for
|
||
UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security
|
||
Services.</li>
|
||
<li><a href="https://github.com/edwingeng/wuid">wuid</a> - An extremely
|
||
fast globally unique number generator.</li>
|
||
<li><a href="https://github.com/rs/xid">xid</a> - Xid is a globally
|
||
unique id generator library, ready to be safely used directly in your
|
||
server code.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="validation">Validation</h2>
|
||
<p><em>Libraries for validation.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/osamingo/checkdigit">checkdigit</a> -
|
||
Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators
|
||
(ISBN, EAN, JAN, UPC, etc.).</li>
|
||
<li><a href="https://github.com/guiferpa/gody">gody</a> - :balloon: A
|
||
lightweight struct validator for Go.</li>
|
||
<li><a href="https://github.com/twharmon/govalid">govalid</a> - Fast,
|
||
tag-based validation for structs.</li>
|
||
<li><a href="https://github.com/asaskevich/govalidator">govalidator</a>
|
||
- Validators and sanitizers for strings, numerics, slices and
|
||
structs.</li>
|
||
<li><a
|
||
href="https://github.com/thedevsaddam/govalidator">govalidator</a> -
|
||
Validate Golang request data with simple rules. Highly inspired by
|
||
Laravel’s request validation.</li>
|
||
<li><a href="https://github.com/faceair/jio">jio</a> - jio is a json
|
||
schema validator similar to <a
|
||
href="https://github.com/hapijs/joi">joi</a>.</li>
|
||
<li><a
|
||
href="https://github.com/go-ozzo/ozzo-validation">ozzo-validation</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/gookit/validate">validate</a> - Go
|
||
package for data validation and filtering. support validate Map, Struct,
|
||
Request(Form, JSON, url.Values, Uploaded Files) data and more
|
||
features.</li>
|
||
<li><a href="https://github.com/gobuffalo/validate">validate</a> - This
|
||
package provides a framework for writing validations for Go
|
||
applications.</li>
|
||
<li><a href="https://github.com/go-playground/validator">validator</a> -
|
||
Go Struct and Field validation, including Cross Field, Cross Struct,
|
||
Map, Slice and Array diving.</li>
|
||
<li><a href="https://github.com/go-the-way/validator">Validator</a> - A
|
||
lightweight model validator written in Go.Contains VFs:Min, Max,
|
||
MinLength, MaxLength, Length, Enum, Regex.</li>
|
||
<li><a href="https://github.com/marrow16/valix">valix</a> Go package for
|
||
validating requests</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="version-control">Version Control</h2>
|
||
<p><em>Libraries for version control.</em></p>
|
||
<ul>
|
||
<li><a href="https://gitlab.com/gitlab-org/cli">cli</a> - An open-source
|
||
GitLab command line tool bringing GitLab’s cool features to your command
|
||
line.</li>
|
||
<li><a href="https://github.com/jfrog/froggit-go">froggit-go</a> -
|
||
Froggit-Go is a Go library, allowing to perform actions on VCS
|
||
providers.</li>
|
||
<li><a href="https://github.com/rjeczalik/gh">gh</a> - Scriptable server
|
||
and net/http middleware for GitHub Webhooks.</li>
|
||
<li><a href="https://github.com/libgit2/git2go">git2go</a> - Go bindings
|
||
for libgit2.</li>
|
||
<li><a href="https://github.com/gabyx/githooks">githooks</a> - Per-repo
|
||
and shared Git hooks with version control and auto update.</li>
|
||
<li><a href="https://github.com/go-git/go-git">go-git</a> - highly
|
||
extensible Git implementation in pure Go.</li>
|
||
<li><a href="https://github.com/sourcegraph/go-vcs">go-vcs</a> -
|
||
manipulate and inspect VCS repositories in Go.</li>
|
||
<li><a href="https://github.com/src-d/hercules">hercules</a> - gaining
|
||
advanced insights from Git repository history.</li>
|
||
<li><a href="https://github.com/beyang/hgo">hgo</a> - Hgo is a
|
||
collection of Go packages providing read-access to local Mercurial
|
||
repositories.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="video">Video</h2>
|
||
<p><em>Libraries for manipulating video.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/3d0c/gmf">gmf</a> - Go bindings for
|
||
FFmpeg av* libraries.</li>
|
||
<li><a href="https://github.com/asticode/go-astisub">go-astisub</a> -
|
||
Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass,
|
||
teletext, .smi, etc.).</li>
|
||
<li><a href="https://github.com/asticode/go-astits">go-astits</a> -
|
||
Parse and demux MPEG Transport Streams (.ts) natively in GO.</li>
|
||
<li><a href="https://github.com/etherlabsio/go-m3u8">go-m3u8</a> -
|
||
Parser and generator library for Apple m3u8 playlists. Actively
|
||
maintained version of quangngotan95/go-m3u8 with improvements and latest
|
||
HLS playlist parsing compatibility.</li>
|
||
<li><a href="https://github.com/unki2aut/go-mpd">go-mpd</a> - Parser and
|
||
generator library for MPEG-DASH manifest files.</li>
|
||
<li><a href="https://github.com/giorgisio/goav">goav</a> - Comprehensive
|
||
Go bindings for FFmpeg.</li>
|
||
<li><a href="https://github.com/aler9/gortsplib">gortsplib</a> - Pure Go
|
||
RTSP server and client library.</li>
|
||
<li><a href="https://github.com/ziutek/gst">gst</a> - Go bindings for
|
||
GStreamer.</li>
|
||
<li><a href="https://github.com/wargarblgarbl/libgosubs">libgosubs</a> -
|
||
Subtitle format support for go. Supports .srt, .ttml, and .ass.</li>
|
||
<li><a href="https://github.com/adrg/libvlc-go">libvlc-go</a> - Go
|
||
bindings for libvlc 2.X/3.X/4.X (used by the VLC media player).</li>
|
||
<li><a href="https://github.com/grafov/m3u8">m3u8</a> - Parser and
|
||
generator library of M3U8 playlists for Apple HLS.</li>
|
||
<li><a href="https://github.com/korandiz/v4l">v4l</a> - Video capture
|
||
library for Linux, written in Go.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||
<p><em>Full stack web frameworks.</em></p>
|
||
<ul>
|
||
<li><a href="https://aahframework.org">aah</a> - Scalable, performant,
|
||
rapid development Web framework for Go.</li>
|
||
<li><a href="https://github.com/aerogo/aero">Aero</a> - High-performance
|
||
web framework for Go, reaches top scores in Lighthouse.</li>
|
||
<li><a href="https://github.com/aofei/air">Air</a> - An ideally refined
|
||
web framework for Go.</li>
|
||
<li><a href="https://github.com/go-the-way/anoweb">anoweb</a> - The
|
||
lightweight and powerful web framework using the new way for Go.Another
|
||
go the way.</li>
|
||
<li><a href="https://github.com/appist/appy">appy</a> - An opinionated
|
||
productive web framework that helps scaling business easier.</li>
|
||
<li><a href="https://github.com/savsgio/atreugo">Atreugo</a> - High
|
||
performance and extensible micro web framework with zero memory
|
||
allocations in hot paths.</li>
|
||
<li><a href="https://github.com/nsheremet/banjo">Banjo</a> - Very simple
|
||
and fast web framework for Go.</li>
|
||
<li><a href="https://github.com/beego/beego">Beego</a> - beego is an
|
||
open-source, high-performance web framework for the Go programming
|
||
language.</li>
|
||
<li><a href="https://gobuffalo.io">Buffalo</a> - Bringing the
|
||
productivity of Rails to Go!</li>
|
||
<li><a href="https://confetti-framework.github.io/docs/">Confetti
|
||
Framework</a> - Confetti is a Go web application framework with an
|
||
expressive, elegant syntax. Confetti combines the elegance of Laravel
|
||
and the simplicity of Go.</li>
|
||
<li><a href="https://github.com/abemedia/go-don">Don</a> - A highly
|
||
performant and simple to use API framework.</li>
|
||
<li><a href="https://github.com/labstack/echo">Echo</a> - High
|
||
performance, minimalist Go web framework.</li>
|
||
<li><a href="https://github.com/gofiber/fiber">Fiber</a> - An Express.js
|
||
inspired web framework build on Fasthttp.</li>
|
||
<li><a href="https://github.com/zpatrick/fireball">Fireball</a> - More
|
||
“natural” feeling web framework.</li>
|
||
<li><a href="https://github.com/i-love-flamingo/flamingo">Flamingo</a> -
|
||
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.</li>
|
||
<li><a
|
||
href="https://github.com/i-love-flamingo/flamingo-commerce">Flamingo
|
||
Commerce</a> - Providing e-commerce features using clean architecture
|
||
like DDD and ports and adapters, that you can use to build flexible
|
||
e-commerce applications.</li>
|
||
<li><a href="https://github.com/abahmed/gearbox">Gearbox</a> - A web
|
||
framework written in Go with a focus on high performance and memory
|
||
optimization.</li>
|
||
<li><a href="https://github.com/gin-gonic/gin">Gin</a> - 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.</li>
|
||
<li><a href="https://github.com/xxjwxc/ginrpc">Ginrpc</a> - Gin
|
||
parameter automatic binding tool,gin rpc tools.</li>
|
||
<li><a href="https://github.com/NYTimes/gizmo">Gizmo</a> - Microservice
|
||
toolkit used by the New York Times.</li>
|
||
<li><a href="https://github.com/ant0ine/go-json-rest">go-json-rest</a> -
|
||
Quick and easy way to setup a RESTful JSON API.</li>
|
||
<li><a href="https://github.com/ungerik/go-rest">go-rest</a> - Small and
|
||
evil REST framework for Go.</li>
|
||
<li><a href="https://github.com/goadesign/goa">Goa</a> - Goa provides a
|
||
holistic approach for developing remote APIs and microservices in
|
||
Go.</li>
|
||
<li><a href="https://github.com/goa-go/goa">goa</a> - goa is just like
|
||
koajs for golang, it is a flexible, light, high-performance and
|
||
extensible web framework based on middleware.</li>
|
||
<li><a href="https://github.com/gofr-dev/gofr">GoFr</a> - Gofr is an
|
||
opinionated microservice development framework.</li>
|
||
<li><a href="https://github.com/gogf/gf">GoFrame</a> - GoFrame is a
|
||
modular, powerful, high-performance and enterprise-class application
|
||
development framework of Golang.</li>
|
||
<li><a href="https://github.com/twharmon/golamb">golamb</a> - Golamb
|
||
makes it easier to write API endpoints for use with AWS Lambda and API
|
||
Gateway.</li>
|
||
<li><a href="https://github.com/fulldump/golax">Golax</a> - A non
|
||
Sinatra fast HTTP framework with support for Google custom methods, deep
|
||
interceptors, recursion and more.</li>
|
||
<li><a href="https://github.com/dinever/golf">Golf</a> - 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.</li>
|
||
<li><a href="https://github.com/rainycape/gondola">Gondola</a> - The web
|
||
framework for writing faster sites, faster.</li>
|
||
<li><a href="https://github.com/mustafaakin/gongular">gongular</a> -
|
||
Fast Go web framework with input mapping/validation and (DI) Dependency
|
||
Injection.</li>
|
||
<li><a href="https://github.com/gotuna/gotuna">GoTuna</a> - Minimalistic
|
||
web framework for Go with mux router, middlewares, sessions, templates,
|
||
embedded views and static files.</li>
|
||
<li><a href="https://github.com/twharmon/goweb">goweb</a> - Web
|
||
framework with routing, websockets, logging, middleware, static file
|
||
server (optional gzip), and automatic TLS.</li>
|
||
<li><a href="https://github.com/go-goyave/goyave">Goyave</a> -
|
||
Feature-complete REST API framework aimed at clean code and fast
|
||
development, with powerful built-in functionalities.</li>
|
||
<li><a href="https://github.com/cloudwego/hertz">Hertz</a> - A
|
||
high-performance and strong-extensibility Go HTTP framework that helps
|
||
developers build microservices.</li>
|
||
<li><a href="https://github.com/hidevopsio/hiboot">hiboot</a> - hiboot
|
||
is a high performance web application framework with auto configuration
|
||
and dependency injection support.</li>
|
||
<li><a href="https://github.com/danielgtaylor/huma/">Huma</a> -
|
||
Framework for modern REST/GraphQL APIs with built-in OpenAPI 3,
|
||
generated documentation, and a CLI.</li>
|
||
<li><a href="https://github.com/jvcoutinho/lit">Lit</a> - Highly
|
||
performant declarative web framework for Golang, aiming for simplicity
|
||
and quality of life.</li>
|
||
<li><a href="https://github.com/go-macaron/macaron">Macaron</a> -
|
||
Macaron is a high productive and modular design web framework in
|
||
Go.</li>
|
||
<li><a href="https://github.com/paulbellamy/mango">mango</a> - Mango is
|
||
a modular web-application framework for Go, inspired by Rack, and
|
||
PEP333.</li>
|
||
<li><a href="https://github.com/claygod/microservice">Microservice</a> -
|
||
The framework for the creation of microservices, written in Golang.</li>
|
||
<li><a href="https://github.com/ivpusic/neo">neo</a> - Neo is minimal
|
||
and fast Go Web Framework with extremely simple API.</li>
|
||
<li><a href="https://github.com/beatlabs/patron">patron</a> - Patron is
|
||
a microservice framework following best cloud practices with a focus on
|
||
productivity.</li>
|
||
<li><a href="https://gitlab.com/fruitygo/pnutmux">Pnutmux</a> - 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.</li>
|
||
<li><a href="https://github.com/gopulse/pulse">Pulse</a> - Pulse is an
|
||
HTTP web framework written in Go (Golang)</li>
|
||
<li><a href="https://github.com/resoursea/api">Resoursea</a> - REST
|
||
framework for quickly writing resource based services.</li>
|
||
<li><a href="https://github.com/rs/rest-layer">REST Layer</a> -
|
||
Framework to build REST/GraphQL API on top of databases with mostly
|
||
configuration over code.</li>
|
||
<li><a href="https://github.com/revel/revel">Revel</a> -
|
||
High-productivity web framework for the Go language.</li>
|
||
<li><a href="https://github.com/goanywhere/rex">rex</a> - Rex is a
|
||
library for modular development built upon gorilla/mux, fully compatible
|
||
with <code>net/http</code>.</li>
|
||
<li><a href="https://github.com/rookie-ninja/rk-boot">rk-boot</a> - A
|
||
bootstrapper library for building enterprise go microservice with Gin
|
||
and gRPC quickly and easily.</li>
|
||
<li><a href="https://github.com/gookit/rux">rux</a> - Simple and fast
|
||
web framework for build golang HTTP applications.</li>
|
||
<li><a href="https://github.com/lunny/tango">tango</a> - Micro &
|
||
pluggable web framework for Go.</li>
|
||
<li><a href="https://github.com/rcrowley/go-tigertonic">tigertonic</a> -
|
||
Go framework for building JSON web services inspired by Dropwizard.</li>
|
||
<li><a href="https://github.com/uadmin/uadmin">uAdmin</a> - Fully
|
||
featured web framework for Golang, inspired by Django.</li>
|
||
<li><a href="https://github.com/gernest/utron">utron</a> - Lightweight
|
||
MVC framework for Go(Golang).</li>
|
||
<li><a href="https://github.com/aisk/vox">vox</a> - A golang web
|
||
framework for humans, inspired by Koa heavily.</li>
|
||
<li><a href="https://github.com/bnkamalesh/webgo">WebGo</a> - A
|
||
micro-framework to build web apps; with handler chaining, middleware and
|
||
context injection. With standard library compliant HTTP
|
||
handlers(i.e. http.HandlerFunc).</li>
|
||
<li><a href="https://github.com/yarf-framework/yarf">YARF</a> - Fast
|
||
micro-framework designed to build REST APIs and web services in a fast
|
||
and simple way.</li>
|
||
<li><a href="https://github.com/ankorstore/yokai">Yokai</a> - Simple,
|
||
modular, and observable Go framework for backend applications.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="middlewares">Middlewares</h3>
|
||
<h4 id="actual-middlewares">Actual middlewares</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/posener/client-timing">client-timing</a>
|
||
- An HTTP client for Server-Timing header.</li>
|
||
<li><a href="https://github.com/rs/cors">CORS</a> - Easily add CORS
|
||
capabilities to your API.</li>
|
||
<li><a
|
||
href="https://github.com/faabiosr/echo-middleware">echo-middleware</a> -
|
||
Middleware for Echo framework with logging and metrics.</li>
|
||
<li><a href="https://github.com/rs/formjson">formjson</a> -
|
||
Transparently handle JSON input as a standard form POST.</li>
|
||
<li><a href="https://github.com/github/go-fault">go-fault</a> - Fault
|
||
injection middleware for Go.</li>
|
||
<li><a
|
||
href="https://github.com/mitchellh/go-server-timing">go-server-timing</a>
|
||
- Add/parse Server-Timing header.</li>
|
||
<li><a href="https://github.com/ulule/limiter">Limiter</a> - Dead simple
|
||
rate limit middleware for Go.</li>
|
||
<li><a href="https://github.com/philippgille/ln-paywall">ln-paywall</a>
|
||
- Go middleware for monetizing APIs on a per-request basis with the
|
||
Lightning Network (Bitcoin).</li>
|
||
<li><a href="https://github.com/bobg/mid">mid</a> - Miscellaneous HTTP
|
||
middleware features: idiomatic error return from handlers;
|
||
receive/respond with JSON data; request tracing; and more.</li>
|
||
<li><a href="https://github.com/rookie-ninja/rk-gin">rk-gin</a> -
|
||
Middleware for Gin framework with logging, metrics, auth, tracing
|
||
etc.</li>
|
||
<li><a href="https://github.com/rookie-ninja/rk-grpc">rk-grpc</a> -
|
||
Middleware for gRPC with logging, metrics, auth, tracing etc.</li>
|
||
<li><a href="https://github.com/didip/tollbooth">Tollbooth</a> - Rate
|
||
limit HTTP request handler.</li>
|
||
<li><a href="https://github.com/sebest/xff">XFF</a> - Handle
|
||
<code>X-Forwarded-For</code> header and friends.</li>
|
||
</ul>
|
||
<h4 id="libraries-for-creating-http-middlewares">Libraries for creating
|
||
HTTP middlewares</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/justinas/alice">alice</a> - Painless
|
||
middleware chaining for Go.</li>
|
||
<li><a href="https://github.com/codemodus/catena">catena</a> -
|
||
http.Handler wrapper catenation (same API as “chain”).</li>
|
||
<li><a href="https://github.com/codemodus/chain">chain</a> - Handler
|
||
wrapper chaining with scoped data (net/context-based “middleware”).</li>
|
||
<li><a href="https://github.com/alioygur/gores">gores</a> - Go package
|
||
that handles HTML, JSON, XML and etc. responses. Useful for RESTful
|
||
APIs.</li>
|
||
<li><a href="https://github.com/carbocation/interpose">interpose</a> -
|
||
Minimalist net/http middleware for golang.</li>
|
||
<li><a
|
||
href="https://github.com/HereMobilityDevelopers/mediary">mediary</a> -
|
||
add interceptors to <code>http.Client</code> to allow
|
||
dumping/shaping/tracing/… of requests/responses.</li>
|
||
<li><a href="https://github.com/stephens2424/muxchain">muxchain</a> -
|
||
Lightweight middleware for net/http.</li>
|
||
<li><a href="https://github.com/urfave/negroni">negroni</a> - Idiomatic
|
||
HTTP middleware for Golang.</li>
|
||
<li><a href="https://github.com/unrolled/render">render</a> - Go package
|
||
for easily rendering JSON, XML, and HTML template responses.</li>
|
||
<li><a href="https://github.com/thedevsaddam/renderer">renderer</a> -
|
||
Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML,
|
||
File) rendering package for Go.</li>
|
||
<li><a href="https://github.com/InVisionApp/rye">rye</a> - Tiny Go
|
||
middleware library (with canned Middlewares) that supports JWT, CORS,
|
||
Statsd, and Go 1.7 context.</li>
|
||
<li><a href="https://github.com/thoas/stats">stats</a> - Go middleware
|
||
that stores various information about your web application.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="routers">Routers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gernest/alien">alien</a> - Lightweight
|
||
and fast http router from outer space.</li>
|
||
<li><a href="https://github.com/GuilhermeCaruso/bellt">bellt</a> - A
|
||
simple Go HTTP router.</li>
|
||
<li><a href="https://github.com/go-zoo/bone">Bone</a> - Lightning Fast
|
||
HTTP Multiplexer.</li>
|
||
<li><a href="https://github.com/claygod/Bxog">Bxog</a> - Simple and fast
|
||
HTTP router for Go. It works with routes of varying difficulty, length
|
||
and nesting. And he knows how to create a URL from the received
|
||
parameters.</li>
|
||
<li><a href="https://github.com/go-chi/chi">chi</a> - Small, fast and
|
||
expressive HTTP router built on net/context.</li>
|
||
<li><a
|
||
href="https://github.com/buaazp/fasthttprouter">fasthttprouter</a> -
|
||
High performance router forked from <code>httprouter</code>. The first
|
||
router fit for <code>fasthttp</code>.</li>
|
||
<li><a href="https://github.com/razonyang/fastrouter">FastRouter</a> - a
|
||
fast, flexible HTTP router written in Go.</li>
|
||
<li><a href="https://github.com/bmf-san/goblin">goblin</a> - A golang
|
||
http router based on trie tree.</li>
|
||
<li><a href="https://github.com/gocraft/web">gocraft/web</a> - Mux and
|
||
middleware package in Go.</li>
|
||
<li><a href="https://github.com/goji/goji">Goji</a> - Goji is a
|
||
minimalistic and flexible HTTP request multiplexer with support for
|
||
<code>net/context</code>.</li>
|
||
<li><a href="https://github.com/golobby/router">GoLobby/Router</a> -
|
||
GoLobby Router is a lightweight yet powerful HTTP router for the Go
|
||
programming language.</li>
|
||
<li><a href="https://github.com/goroute/route">goroute</a> - Simple yet
|
||
powerful HTTP request multiplexer.</li>
|
||
<li><a href="https://github.com/vardius/gorouter">GoRouter</a> -
|
||
GoRouter is a Server/API micro framework, HTTP request router,
|
||
multiplexer, mux that provides request router with middleware supporting
|
||
<code>net/context</code>.</li>
|
||
<li><a href="https://github.com/gowww/router">gowww/router</a> -
|
||
Lightning fast HTTP router fully compatible with the net/http.Handler
|
||
interface.</li>
|
||
<li><a href="https://github.com/julienschmidt/httprouter">httprouter</a>
|
||
- High performance router. Use this and the standard http handlers to
|
||
form a very high performance web framework.</li>
|
||
<li><a href="https://github.com/dimfeld/httptreemux">httptreemux</a> -
|
||
High-speed, flexible tree-based HTTP router for Go. Inspiration from
|
||
httprouter.</li>
|
||
<li><a href="https://github.com/go-playground/lars">lars</a> - Is a
|
||
lightweight, fast and extensible zero allocation HTTP router for Go used
|
||
to create customizable frameworks.</li>
|
||
<li><a href="https://github.com/gorilla/mux">mux</a> - Powerful URL
|
||
router and dispatcher for golang.</li>
|
||
<li><a href="https://github.com/muir/nchi">nchi</a> - chi-like router
|
||
built on httprouter with dependency injection based middleware
|
||
wrappers</li>
|
||
<li><a href="https://github.com/ngamux/ngamux">ngamux</a> - Simple HTTP
|
||
router for Go.</li>
|
||
<li><a href="https://github.com/go-ozzo/ozzo-routing">ozzo-routing</a> -
|
||
An extremely fast Go (golang) HTTP router that supports regular
|
||
expression route matching. Comes with full support for building RESTful
|
||
APIs.</li>
|
||
<li><a href="https://github.com/go-playground/pure">pure</a> - Is a
|
||
lightweight HTTP router that sticks to the std “net/http”
|
||
implementation.</li>
|
||
<li><a href="https://github.com/VividCortex/siesta">Siesta</a> -
|
||
Composable framework to write middleware and handlers.</li>
|
||
<li><a href="https://github.com/husobee/vestigo">vestigo</a> -
|
||
Performant, stand-alone, HTTP compliant URL Router for go web
|
||
applications.</li>
|
||
<li><a href="https://github.com/nbari/violetear">violetear</a> - Go HTTP
|
||
router.</li>
|
||
<li><a href="https://github.com/rs/xmux">xmux</a> - High performance
|
||
muxer based on <code>httprouter</code> with <code>net/context</code>
|
||
support.</li>
|
||
<li><a href="https://github.com/xujiajun/gorouter">xujiajun/gorouter</a>
|
||
- A simple and fast HTTP router for Go.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="webassembly">WebAssembly</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/dennwc/dom">dom</a> - DOM library.</li>
|
||
<li><a href="https://github.com/markfarnan/go-canvas">go-canvas</a> -
|
||
Library to use HTML5 Canvas, with all drawing within go code.</li>
|
||
<li><a href="https://github.com/tinygo-org/tinygo">tinygo</a> - Go
|
||
compiler for small places. Microcontrollers, WebAssembly, and
|
||
command-line tools. Based on LLVM.</li>
|
||
<li><a href="https://github.com/norunners/vert">vert</a> - Interop
|
||
between Go and JS values.</li>
|
||
<li><a
|
||
href="https://github.com/agnivade/wasmbrowsertest">wasmbrowsertest</a> -
|
||
Run Go WASM tests in your browser.</li>
|
||
<li><a href="https://github.com/gowebapi/webapi">webapi</a> - Bindings
|
||
for DOM and HTML generated from WebIDL.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="windows">Windows</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/gonutz/d3d9">d3d9</a> - Go bindings for
|
||
Direct3D9.</li>
|
||
<li><a href="https://github.com/go-ole/go-ole">go-ole</a> - Win32 OLE
|
||
implementation for golang.</li>
|
||
<li><a href="https://github.com/MonaxGT/gosddl">gosddl</a> - Converter
|
||
from SDDL-string to user-friendly JSON. SDDL consist of four part:
|
||
Owner, Primary Group, DACL, SACL.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="xml">XML</h2>
|
||
<p><em>Libraries and tools for manipulating XML.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/xml-comp/xml-comp">XML-Comp</a> - Simple
|
||
command line XML comparer that generates diffs of folders, files and
|
||
tags.</li>
|
||
<li><a href="https://github.com/sbabiv/xml2map">xml2map</a> - XML to MAP
|
||
converter written Golang.</li>
|
||
<li><a href="https://github.com/shabbyrobe/xmlwriter">xmlwriter</a> -
|
||
Procedural XML generation API based on libxml2’s xmlwriter module.</li>
|
||
<li><a href="https://github.com/antchfx/xpath">xpath</a> - XPath package
|
||
for Go.</li>
|
||
<li><a href="https://github.com/antchfx/xquery">xquery</a> - XQuery lets
|
||
you extract data from HTML/XML documents using XPath expression.</li>
|
||
<li><a href="https://github.com/miku/zek">zek</a> - Generate a Go struct
|
||
from XML.</li>
|
||
</ul>
|
||
<h2 id="zero-trust">Zero Trust</h2>
|
||
<p><em>Libraries and tools to implement Zero Trust
|
||
architectures.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/sigstore/cosign">Cosign</a> - Container
|
||
Signing, Verification and Storage in an OCI registry.</li>
|
||
<li><a href="https://github.com/in-toto/in-toto-golang">in-toto</a> - Go
|
||
implementation of the in-toto (provides a framework to protect the
|
||
integrity of the software supply chain) python reference
|
||
implementation.</li>
|
||
<li><a
|
||
href="https://github.com/philips-labs/spiffe-vault">Spiffe-Vault</a> -
|
||
Utilizes Spiffe JWT authentication with Hashicorp Vault for secretless
|
||
authentication.</li>
|
||
<li><a href="https://github.com/spiffe/spire">Spire</a> - SPIRE (the
|
||
SPIFFE Runtime Environment) is a toolchain of APIs for establishing
|
||
trust between software systems across a wide variety of hosting
|
||
platforms.</li>
|
||
</ul>
|
||
<h2 id="code-analysis">Code Analysis</h2>
|
||
<p><em>Source code analysis tools, also known as Static Application
|
||
Security Testing (SAST) Tools.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/bradleyfalzon/apicompat">apicompat</a> -
|
||
Checks recent changes to a Go project for backwards incompatible
|
||
changes.</li>
|
||
<li><a href="https://github.com/asty-org/asty">asty</a> - Converts
|
||
golang AST to JSON and JSON to AST.</li>
|
||
<li><a
|
||
href="https://gitlab.com/verygoodsoftwarenotvirus/blanket">blanket</a> -
|
||
blanket is a tool that helps you catch functions which don’t have direct
|
||
unit tests in your Go packages.</li>
|
||
<li><a href="https://github.com/Checkmarx/chainjacking">ChainJacking</a>
|
||
- Find which of your Go lang direct GitHub dependencies is susceptible
|
||
to ChainJacking attack.</li>
|
||
<li><a href="https://github.com/amit-davidson/Chronos">Chronos</a> -
|
||
Detects race conditions statically</li>
|
||
<li><a href="https://github.com/mibk/dupl">dupl</a> - Tool for code
|
||
clone detection.</li>
|
||
<li><a href="https://github.com/kisielk/errcheck">errcheck</a> -
|
||
Errcheck is a program for checking for unchecked errors in Go
|
||
programs.</li>
|
||
<li><a href="https://github.com/davecheney/gcvis">gcvis</a> - Visualise
|
||
Go program GC trace data in real time.</li>
|
||
<li><a href="https://github.com/qiniu/checkstyle">go-checkstyle</a> -
|
||
checkstyle is a style check tool like java checkstyle. This tool
|
||
inspired by java checkstyle, golint. The style referred to some points
|
||
in Go Code Review Comments.</li>
|
||
<li><a
|
||
href="https://github.com/roblaszczak/go-cleanarch">go-cleanarch</a> -
|
||
go-cleanarch was created to validate Clean Architecture rules, like a
|
||
The Dependency Rule and interaction between packages in your Go
|
||
projects.</li>
|
||
<li><a href="https://github.com/go-critic/go-critic">go-critic</a> -
|
||
source code linter that brings checks that are currently not implemented
|
||
in other linters.</li>
|
||
<li><a
|
||
href="https://github.com/psampaz/go-mod-outdated">go-mod-outdated</a> -
|
||
An easy way to find outdated dependencies of your Go projects.</li>
|
||
<li><a href="https://github.com/firstrow/go-outdated">go-outdated</a> -
|
||
Console application that displays outdated packages.</li>
|
||
<li><a href="https://github.com/yuroyoro/goast-viewer">goast-viewer</a>
|
||
- Web based Golang AST visualizer.</li>
|
||
<li><a
|
||
href="https://pkg.go.dev/golang.org/x/tools/cmd/goimports">goimports</a>
|
||
- Tool to fix (add, remove) your Go imports automatically.</li>
|
||
<li><a
|
||
href="https://github.com/arxdsilva/golang-ifood-sdk">golang-ifood-sdk</a>
|
||
- iFood API SDK.</li>
|
||
<li><a
|
||
href="https://github.com/golangci/golangci-lint">golangci-lint</a> – A
|
||
fast Go linters runner. It runs linters in parallel, uses caching,
|
||
supports <code>yaml</code> config, has integrations with all major IDE
|
||
and has dozens of linters included.</li>
|
||
<li><a href="https://github.com/segmentio/golines">golines</a> -
|
||
Formatter that automatically shortens long lines in Go code.</li>
|
||
<li><a href="https://github.com/jfeliu007/goplantuml">GoPlantUML</a> -
|
||
Library and CLI that generates text plantump class diagram containing
|
||
information about structures and interfaces with the relationship among
|
||
them.</li>
|
||
<li><a
|
||
href="https://sourcegraph.com/github.com/sqs/goreturns">goreturns</a> -
|
||
Adds zero-value return statements to match the func return types.</li>
|
||
<li><a href="https://github.com/shurcooL/gostatus">gostatus</a> -
|
||
Command line tool, shows the status of repositories that contain Go
|
||
packages.</li>
|
||
<li><a href="https://github.com/surullabs/lint">lint</a> - Run linters
|
||
as part of go test.</li>
|
||
<li><a href="https://github.com/z7zmey/php-parser">php-parser</a> - A
|
||
Parser for PHP written in Go.</li>
|
||
<li><a href="https://github.com/mgechev/revive">revive</a> – ~6x faster,
|
||
stricter, configurable, extensible, and beautiful drop-in replacement
|
||
for <code>golint</code>.</li>
|
||
<li><a
|
||
href="https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck">staticcheck</a>
|
||
- staticcheck is <code>go vet</code> on steroids, applying a ton of
|
||
static analysis checks you might be used to from tools like ReSharper
|
||
for C#.</li>
|
||
<li><a href="https://github.com/Antonboom/testifylint">testifylint</a> –
|
||
A linter that checks usage of <a
|
||
href="https://github.com/stretchr/testify">github.com/stretchr/testify</a>.</li>
|
||
<li><a href="https://github.com/augmentable-dev/tickgit">tickgit</a> -
|
||
CLI and go package for surfacing code comment TODOs (in any language)
|
||
and applying a <code>git blame</code>to identify the author.</li>
|
||
<li><a href="https://github.com/preslavmihaylov/todocheck">todocheck</a>
|
||
- Static code analyser which links TODO comments in code with issues in
|
||
your issue tracker.</li>
|
||
<li><a href="https://github.com/mdempsky/unconvert">unconvert</a> -
|
||
Remove unnecessary type conversions from Go source.</li>
|
||
<li><a
|
||
href="https://github.com/sashamelentyev/usestdlibvars">usestdlibvars</a>
|
||
- A linter that detect the possibility to use variables/constants from
|
||
the Go standard library.</li>
|
||
<li><a href="https://github.com/daveshanley/vacuum">vacuum</a> - An
|
||
ultra-super-fast, lightweight OpenAPI linter and quality checking
|
||
tool.</li>
|
||
<li><a href="https://github.com/mccoyst/validate">validate</a> -
|
||
Automatically validates struct fields with tags.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="editor-plugins">Editor Plugins</h2>
|
||
<p><em>Plugin for text editors and IDEs.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/josa42/coc-go">coc-go language server
|
||
extension for Vim/Neovim</a> - This plugin adds <a
|
||
href="https://github.com/golang/tools/blob/master/gopls/README.md">gopls</a>
|
||
features to Vim/Neovim.</li>
|
||
<li><a href="https://github.com/msyrus/vscode-go-doc">Go Doc</a> - A
|
||
Visual Studio Code extension for showing definition in output and
|
||
generating go doc.</li>
|
||
<li><a href="https://plugins.jetbrains.com/plugin/9568-go">Go plugin for
|
||
JetBrains IDEs</a> - Go plugin for JetBrains IDEs.</li>
|
||
<li><a
|
||
href="https://github.com/theia-ide/go-language-server">go-language-server</a>
|
||
- A wrapper to turn the VSCode go extension into a language server
|
||
supporting the language-server-protocol.</li>
|
||
<li><a href="https://github.com/dominikh/go-mode.el">go-mode</a> - Go
|
||
mode for GNU/Emacs.</li>
|
||
<li><a href="https://github.com/joefitzgerald/go-plus">go-plus</a> - Go
|
||
(Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax
|
||
Checking, Linting and Vetting.</li>
|
||
<li><a href="https://github.com/nsf/gocode">gocode</a> - Autocompletion
|
||
daemon for the Go programming language.</li>
|
||
<li><a
|
||
href="https://github.com/incu6us/goimports-reviser">goimports-reviser</a>
|
||
- Formatting tool for imports.</li>
|
||
<li><a
|
||
href="https://marketplace.visualstudio.com/items?itemName=MaxMedia.go-prof">goprofiling</a>
|
||
- This extension adds benchmark profiling support for the Go language to
|
||
VS Code.</li>
|
||
<li><a href="https://github.com/DisposaBoy/GoSublime">GoSublime</a> -
|
||
Golang plugin collection for the text editor SublimeText 3 providing
|
||
code completion and other IDE-like features.</li>
|
||
<li><a href="https://github.com/hexdigest/gounit-vim">gounit-vim</a> -
|
||
Vim plugin for generating Go tests based on the function’s or method’s
|
||
signature.</li>
|
||
<li><a
|
||
href="https://github.com/theia-ide/theia-go-extension">theia-go-extension</a>
|
||
- Go language support for the Theia IDE.</li>
|
||
<li><a
|
||
href="https://github.com/rjohnsondev/vim-compiler-go">vim-compiler-go</a>
|
||
- Vim plugin to highlight syntax errors on save.</li>
|
||
<li><a href="https://github.com/fatih/vim-go">vim-go</a> - Go
|
||
development plugin for Vim.</li>
|
||
<li><a href="https://github.com/golang/vscode-go">vscode-go</a> -
|
||
Extension for Visual Studio Code (VS Code) which provides support for
|
||
the Go language.</li>
|
||
<li><a href="https://github.com/eaburns/Watch">Watch</a> - Runs a
|
||
command in an acme win on file changes.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="go-generate-tools">Go Generate Tools</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/g4s8/envdoc">envdoc</a> - generate
|
||
documentation for environment variables from Go source files.</li>
|
||
<li><a href="https://github.com/usk81/generic">generic</a> - flexible
|
||
data type for Go.</li>
|
||
<li><a href="https://github.com/cheekybits/genny">genny</a> - Elegant
|
||
generics for Go.</li>
|
||
<li><a href="https://github.com/Parquery/gocontracts">gocontracts</a> -
|
||
brings design-by-contract to Go by synchronizing the code with the
|
||
documentation.</li>
|
||
<li><a href="https://github.com/mafulong/godal">godal</a> - Generate orm
|
||
models corresponding to golang by specifying sql ddl file, which can be
|
||
used by gorm.</li>
|
||
<li><a href="https://github.com/bouk/gonerics">gonerics</a> - Idiomatic
|
||
Generics in Go.</li>
|
||
<li><a href="https://github.com/cweill/gotests">gotests</a> - Generate
|
||
Go tests from your source code.</li>
|
||
<li><a href="https://github.com/hexdigest/gounit">gounit</a> - Generate
|
||
Go tests using your own templates.</li>
|
||
<li><a href="https://github.com/DylanMeeus/hasgo">hasgo</a> - Generate
|
||
Haskell inspired functions for your slices.</li>
|
||
<li><a href="https://github.com/kazhuravlev/options-gen">options-gen</a>
|
||
- Functional options described by Dave Cheney’s post “Functional options
|
||
for friendly APIs”.</li>
|
||
<li><a href="https://gitlab.com/opennota/re2dfa">re2dfa</a> - Transform
|
||
regular expressions into finite state machines and output Go source
|
||
code.</li>
|
||
<li><a href="https://github.com/anqiansong/sqlgen">sqlgen</a> - Generate
|
||
gorm, xorm, sqlx, bun, sql code from SQL file or DSN.</li>
|
||
<li><a href="https://xuri.me/toml-to-go">TOML-to-Go</a> - Translates
|
||
TOML into a Go type in the browser instantly.</li>
|
||
<li><a href="https://github.com/xuri/xgen">xgen</a> - XSD (XML Schema
|
||
Definition) parser and Go/C/Java/Rust/TypeScript code generator.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="go-tools">Go Tools</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/songgao/colorgo">colorgo</a> - Wrapper
|
||
around <code>go</code> command for colorized <code>go build</code>
|
||
output.</li>
|
||
<li><a href="https://github.com/bobg/decouple">decouple</a> - Find
|
||
“overspecified” function parameters that could be generalized with
|
||
interface types.</li>
|
||
<li><a href="https://github.com/KyleBanks/depth">depth</a> - Visualize
|
||
dependency trees of any package by analyzing imports.</li>
|
||
<li><a href="https://github.com/go-oas/docs">docs</a> - Automatically
|
||
generate RESTful API documentation for GO projects - aligned with Open
|
||
API Specification standard.</li>
|
||
<li><a href="https://github.com/TrueFurby/go-callvis">go-callvis</a> -
|
||
Visualize call graph of your Go program using dot format.</li>
|
||
<li><a href="https://github.com/pieterclaerhout/go-james">go-james</a> -
|
||
Go project skeleton creator, builds and tests your projects without the
|
||
manual setup.</li>
|
||
<li><a
|
||
href="https://github.com/skelterjohn/go-pkg-complete">go-pkg-complete</a>
|
||
- Bash completion for go and wgo.</li>
|
||
<li><a href="https://github.com/go-swagger/go-swagger">go-swagger</a> -
|
||
Swagger 2.0 implementation for go. Swagger is a simple yet powerful
|
||
representation of your RESTful API.</li>
|
||
<li><a href="https://github.com/tylerwince/godbg">godbg</a> -
|
||
Implementation of Rusts <code>dbg!</code> macro for quick and easy
|
||
debugging during development.</li>
|
||
<li><a href="https://github.com/dustinblackman/gomodrun/">gomodrun</a> -
|
||
Go tool that executes and caches binaries included in go.mod files.</li>
|
||
<li><a href="https://gotemplate.io/">gotemplate.io</a> - Online tool to
|
||
preview <code>text/template</code> templates live.</li>
|
||
<li><a href="https://github.com/bitfield/gotestdox">gotestdox</a> - Show
|
||
Go test results as readable sentences.</li>
|
||
<li><a href="https://github.com/psampaz/gothanks">gothanks</a> -
|
||
GoThanks automatically stars your go.mod github dependencies, sending
|
||
this way some love to their maintainers.</li>
|
||
<li><a href="https://github.com/rocketlaunchr/igo">igo</a> - An igo to
|
||
go transpiler (new language features for Go language!)</li>
|
||
<li><a href="https://github.com/bobg/modver">modver</a> - Compare two
|
||
versions of a Go module to check the version-number change required
|
||
(major, minor, or patchlevel), according to <a
|
||
href="https://semver.org/">semver</a> rules.</li>
|
||
<li><a
|
||
href="https://github.com/OctoLinker/browser-extension">OctoLinker</a> -
|
||
Navigate through go files efficiently with the OctoLinker browser
|
||
extension for GitHub.</li>
|
||
<li><a href="https://github.com/kyoh86/richgo">richgo</a> - Enrich
|
||
<code>go test</code> outputs with text decorations.</li>
|
||
<li><a href="https://github.com/becheran/roumon">roumon</a> - Monitor
|
||
current state of all active goroutines via a command line
|
||
interface.</li>
|
||
<li><a href="https://github.com/galeone/rts">rts</a> - RTS: response to
|
||
struct. Generates Go structs from server responses.</li>
|
||
<li><a href="https://github.com/ravsii/textra">textra</a> - Extract Go
|
||
struct field names, types and tags for filtering and exporting.</li>
|
||
<li><a href="https://github.com/dtgorski/typex">typex</a> - Examine Go
|
||
types and their transitive dependencies, alternatively export results as
|
||
TypeScript value objects (or types) declaration.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="software-packages">Software Packages</h2>
|
||
<p><em>Software written in Go.</em></p>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="devops-tools">DevOps Tools</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/dnnrly/abbreviate">abbreviate</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/smira/aptly">aptly</a> - aptly is a
|
||
Debian repository management tool.</li>
|
||
<li><a href="https://github.com/xuri/aurora">aurora</a> - Cross-platform
|
||
web-based Beanstalkd queue server console.</li>
|
||
<li><a href="https://github.com/soniah/awsenv">awsenv</a> - Small binary
|
||
that loads Amazon (AWS) environment variables for a profile.</li>
|
||
<li><a href="https://github.com/balerter/balerter">Balerter</a> - A
|
||
self-hosted script-based alerting manager.</li>
|
||
<li><a href="https://github.com/dave/blast">Blast</a> - A simple tool
|
||
for API load testing and batch jobs.</li>
|
||
<li><a href="https://github.com/codesenberg/bombardier">bombardier</a> -
|
||
Fast cross-platform HTTP benchmarking tool.</li>
|
||
<li><a href="https://github.com/bosun-monitor/bosun">bosun</a> - Time
|
||
Series Alerting Framework.</li>
|
||
<li><a href="https://github.com/rogerwelin/cassowary">cassowary</a> -
|
||
Modern cross-platform HTTP load-testing tool written in Go.</li>
|
||
<li><a href="https://github.com/ddosify/ddosify">Ddosify</a> -
|
||
High-performance load testing tool, written in Golang.</li>
|
||
<li><a href="https://github.com/s0rg/decompose">decompose</a> - tool to
|
||
generate and process Docker containers connections graphs.</li>
|
||
<li><a href="https://github.com/centerorbit/depcharge">DepCharge</a> -
|
||
Helps orchestrating the execution of commands across the many
|
||
dependencies in larger projects.</li>
|
||
<li><a href="https://www.docker.com/">Docker</a> - Open platform for
|
||
distributed applications for developers and sysadmins.</li>
|
||
<li><a
|
||
href="https://github.com/x1unix/docker-go-mingw">docker-go-mingw</a> -
|
||
Docker image for building Go binaries for Windows with MinGW
|
||
toolchain.</li>
|
||
<li><a
|
||
href="https://github.com/ozankasikci/dockerfile-generator">Dockerfile-Generator</a>
|
||
- A go library and an executable that produces valid Dockerfiles using
|
||
various input channels.</li>
|
||
<li><a href="https://github.com/liudng/dogo">dogo</a> - Monitoring
|
||
changes in the source file and automatically compile and run
|
||
(restart).</li>
|
||
<li><a
|
||
href="https://github.com/appleboy/drone-jenkins">drone-jenkins</a> -
|
||
Trigger downstream Jenkins jobs using a binary, docker or Drone CI.</li>
|
||
<li><a href="https://github.com/appleboy/drone-scp">drone-scp</a> - Copy
|
||
files and artifacts via SSH using a binary, docker or Drone CI.</li>
|
||
<li><a href="https://github.com/chrismckenzie/dropship">Dropship</a> -
|
||
Tool for deploying code via cdn.</li>
|
||
<li><a
|
||
href="https://github.com/appleboy/easyssh-proxy">easyssh-proxy</a> -
|
||
Golang package for easy remote execution through SSH and SCP downloading
|
||
via <code>ProxyCommand</code>.</li>
|
||
<li><a href="https://github.com/mkchoi212/fac">fac</a> - Command-line
|
||
user interface to fix git merge conflicts.</li>
|
||
<li><a href="https://github.com/flannel-io/flannel">Flannel</a> -
|
||
Flannel is a network fabric for containers, designed for
|
||
Kubernetes.</li>
|
||
<li><a href="https://github.com/fleetdm/fleet">Fleet device
|
||
management</a> - Lightweight, programmable telemetry for servers and
|
||
workstations.</li>
|
||
<li><a href="https://github.com/gaia-pipeline/gaia">gaia</a> - Build
|
||
powerful pipelines in any programming language.</li>
|
||
<li><a href="https://github.com/gabrie30/ghorg">ghorg</a> - Quickly
|
||
clone an entire org/users repositories into one directory - Supports
|
||
GitHub, GitLab, Gitea, and Bitbucket.</li>
|
||
<li><a href="https://github.com/go-gitea/gitea">Gitea</a> - Fork of
|
||
Gogs, entirely community driven.</li>
|
||
<li><a
|
||
href="https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator">gitea-github-migrator</a>
|
||
- Migrate all your GitHub repositories, issues, milestones and labels to
|
||
your Gitea instance.</li>
|
||
<li><a href="https://github.com/go-furnace/go-furnace">go-furnace</a> -
|
||
Hosting solution written in Go. Deploy your Application with ease on
|
||
AWS, GCP or DigitalOcean.</li>
|
||
<li><a
|
||
href="https://github.com/mouuff/go-rocket-update">go-rocket-update</a> -
|
||
A simple way to make self updating Go applications - Supports Github and
|
||
Gitlab.</li>
|
||
<li><a
|
||
href="https://github.com/sanbornm/go-selfupdate">go-selfupdate</a> -
|
||
Enable your Go applications to self update.</li>
|
||
<li><a href="https://github.com/cryptojuice/gobrew">gobrew</a> - gobrew
|
||
lets you easily switch between multiple versions of go.</li>
|
||
<li><a href="https://github.com/kevincobain2000/gobrew">gobrew</a> - Go
|
||
version manager. Super simple tool to install and manage Go versions.
|
||
Install go without root. Gobrew doesn’t require shell rehash.</li>
|
||
<li><a href="https://github.com/sirnewton01/godbg">godbg</a> - Web-based
|
||
gdb front-end application.</li>
|
||
<li><a href="https://gogs.io/">Gogs</a> - A Self Hosted Git Service in
|
||
the Go Programming Language.</li>
|
||
<li><a href="https://github.com/inconshreveable/gonative">gonative</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/ahmetalpbalkan/govvv">govvv</a> - “go
|
||
build” wrapper to easily add version information into Go binaries.</li>
|
||
<li><a href="https://github.com/mitchellh/gox">gox</a> - Dead simple, no
|
||
frills Go cross compile tool.</li>
|
||
<li><a href="https://github.com/laher/goxc">goxc</a> - build tool for
|
||
Go, with a focus on cross-compiling and packaging.</li>
|
||
<li><a href="https://github.com/yaronsumel/grapes">grapes</a> -
|
||
Lightweight tool designed to distribute commands over ssh with
|
||
ease.</li>
|
||
<li><a href="https://github.com/moovweb/gvm">GVM</a> - GVM provides an
|
||
interface to manage Go versions.</li>
|
||
<li><a href="https://github.com/rakyll/hey">Hey</a> - Hey is a tiny
|
||
program that sends some load to a web application.</li>
|
||
<li><a href="https://github.com/dnnrly/httpref">httpref</a> - httpref is
|
||
a handy CLI reference for HTTP methods, status codes, headers, and TCP
|
||
and UDP ports.</li>
|
||
<li><a href="https://github.com/jenkins-zh/jenkins-cli">jcli</a> -
|
||
Jenkins CLI allows you manage your Jenkins as an easy way.</li>
|
||
<li><a href="https://github.com/k3d-io/k3d">k3d</a> - Little helper to
|
||
run CNCF’s k3s in Docker.</li>
|
||
<li><a href="https://github.com/k3s-io/k3s">k3s</a> - Lightweight
|
||
Kubernetes.</li>
|
||
<li><a href="https://github.com/grafana/k6">k6</a> - A modern load
|
||
testing tool, using Go and JavaScript.</li>
|
||
<li><a href="https://github.com/ajvb/kala">kala</a> - Simplistic,
|
||
modern, and performant job scheduler.</li>
|
||
<li><a href="https://github.com/cswank/kcli">kcli</a> - Command line
|
||
tool for inspecting kafka topics/partitions/messages.</li>
|
||
<li><a href="https://github.com/kubernetes-sigs/kind">kind</a> -
|
||
Kubernetes IN Docker - local clusters for testing Kubernetes.</li>
|
||
<li><a href="https://github.com/google/ko">ko</a> - Command line tool
|
||
for building and deploying Go applications on Kubernetes</li>
|
||
<li><a href="https://github.com/kool-dev/kool">kool</a> - Command line
|
||
tool for managing Docker environments as an easy way.</li>
|
||
<li><a href="https://github.com/kubernetes/kubernetes">kubernetes</a> -
|
||
Container Cluster Manager from Google.</li>
|
||
<li><a href="https://github.com/kubeshark/kubeshark">kubeshark</a> - API
|
||
traffic analyzer for Kubernetes, inspired by Wireshark, purposely built
|
||
for Kubernetes.</li>
|
||
<li><a href="https://github.com/kubevela/kubevela">KubeVela</a> - Cloud
|
||
native application delivery.</li>
|
||
<li><a href="https://github.com/kubenetworks/kubevpn">kubevpn</a> - VPN
|
||
tools to connect kubernetes cluster network and proxy workloads inbound
|
||
traffic to local PC with service mesh.</li>
|
||
<li><a href="https://github.com/abahmed/kwatch">kwatch</a> - Monitor
|
||
& detect crashes in your Kubernetes(K8s) cluster instantly.</li>
|
||
<li><a href="https://github.com/ivanilves/lstags">lstags</a> - Tool and
|
||
API to sync Docker images across different registries.</li>
|
||
<li><a href="https://github.com/timdp/lwc">lwc</a> - A live-updating
|
||
version of the UNIX wc command.</li>
|
||
<li><a href="https://github.com/xwjdsh/manssh">manssh</a> - manssh is a
|
||
command line tool for managing your ssh alias config easily.</li>
|
||
<li><a href="https://github.com/mantil-io/mantil">Mantil</a> - 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.</li>
|
||
<li><a href="https://github.com/kubernetes/minikube">minikube</a> - Run
|
||
Kubernetes locally.</li>
|
||
<li><a href="https://github.com/moby/moby">Moby</a> - Collaborative
|
||
project for the container ecosystem to assemble container-based
|
||
systems.</li>
|
||
<li><a href="https://github.com/emicklei/mora">Mora</a> - REST server
|
||
for accessing MongoDB documents and meta data.</li>
|
||
<li><a href="https://github.com/ostrost/ostent">ostent</a> - collects
|
||
and displays system metrics and optionally relays to Graphite and/or
|
||
InfluxDB.</li>
|
||
<li><a href="https://github.com/mitchellh/packer">Packer</a> - Packer is
|
||
a tool for creating identical machine images for multiple platforms from
|
||
a single source configuration.</li>
|
||
<li><a href="https://github.com/bengadbois/pewpew">Pewpew</a> - Flexible
|
||
HTTP command line stress tester.</li>
|
||
<li><a href="https://github.com/pipe-cd/pipecd">PipeCD</a> - A
|
||
GitOps-style continuous delivery platform that provides consistent
|
||
deployment and operations experience for any applications.</li>
|
||
<li><a href="https://github.com/pomerium/pomerium">Pomerium</a> -
|
||
Pomerium is an identity-aware access proxy.</li>
|
||
<li><a href="https://github.com/alouche/rodent">Rodent</a> - Rodent
|
||
helps you manage Go versions, projects and track dependencies.</li>
|
||
<li><a href="https://github.com/oxyno-zeta/s3-proxy">s3-proxy</a> - S3
|
||
Proxy with GET, PUT and DELETE methods and authentication (OpenID
|
||
Connect and Basic Auth).</li>
|
||
<li><a href="https://github.com/rlmcpherson/s3gof3r">s3gof3r</a> - Small
|
||
utility/library optimized for high speed transfer of large objects into
|
||
and out of Amazon S3.</li>
|
||
<li><a href="https://github.com/peak/s5cmd">s5cmd</a> - Blazing fast S3
|
||
and local filesystem execution tool.</li>
|
||
<li><a href="https://github.com/scaleway/scaleway-cli">Scaleway-cli</a>
|
||
- Manage BareMetal Servers from Command Line (as easily as with
|
||
Docker).</li>
|
||
<li><a href="https://github.com/bitfield/script">script</a> - Making it
|
||
easy to write shell-like scripts in Go for DevOps and system
|
||
administration tasks.</li>
|
||
<li><a href="https://github.com/ChristopherRabotin/sg">sg</a> -
|
||
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.</li>
|
||
<li><a href="https://github.com/TimothyYe/skm">skm</a> - SKM is a simple
|
||
and powerful SSH Keys Manager, it helps you to manage your multiple SSH
|
||
keys easily!</li>
|
||
<li><a href="https://github.com/sanathp/statusok">StatusOK</a> - Monitor
|
||
your Website and REST APIs.Get Notified through Slack, E-mail when your
|
||
server is down or response time is more than expected.</li>
|
||
<li><a href="https://github.com/taubyte/tau">tau</a> - Easily build
|
||
Cloud Computing Platforms with features like Serverless WebAssembly
|
||
Functions, Frontend Hosting, CI/CD, Object Storage, K/V Database, and
|
||
Pub-Sub Messaging.</li>
|
||
<li><a
|
||
href="https://github.com/dikhan/terraform-provider-openapi">terraform-provider-openapi</a>
|
||
- 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.</li>
|
||
<li><a href="https://github.com/datarootsio/tf-profile">tf-profile</a> -
|
||
Profiler for Terraform runs. Generate global stats, resource-level stats
|
||
or visualizations.</li>
|
||
<li><a href="https://github.com/containous/traefik">traefik</a> -
|
||
Reverse proxy and load balancer with support for multiple backends.</li>
|
||
<li><a href="https://github.com/xitonix/trubka">trubka</a> - 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.</li>
|
||
<li><a href="https://github.com/ovh/utask">uTask</a> - Automation engine
|
||
that models and executes business processes declared in yaml.</li>
|
||
<li><a href="https://github.com/tsenart/vegeta">Vegeta</a> - HTTP load
|
||
testing tool and library. It’s over 9000!</li>
|
||
<li><a href="https://github.com/dnnrly/wait-for">wait-for</a> - Wait for
|
||
something to happen (from the command line) before continuing. Easy
|
||
orchestration of Docker services and other things.</li>
|
||
<li><a href="https://github.com/adnanh/webhook">webhook</a> - Tool which
|
||
allows user to create HTTP endpoints (hooks) that execute commands on
|
||
the server.</li>
|
||
<li><a href="https://wide.b3log.org/login">Wide</a> - Web-based IDE for
|
||
Teams using Golang.</li>
|
||
<li><a href="https://github.com/masterzen/winrm-cli">winrm-cli</a> - Cli
|
||
tool to remotely execute commands on Windows machines.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="other-software">Other Software</h3>
|
||
<ul>
|
||
<li><a href="https://goplay.tools">Better Go Playground</a> - Go
|
||
playground with syntax highlight, code completion and other
|
||
features.</li>
|
||
<li><a href="https://github.com/0xERR0R/blocky">blocky</a> - Fast and
|
||
lightweight DNS proxy as ad-blocker for local network with many
|
||
features.</li>
|
||
<li><a href="https://github.com/crufter/borg">borg</a> - Terminal based
|
||
search engine for bash snippets.</li>
|
||
<li><a href="https://github.com/tejo/boxed">boxed</a> - Dropbox based
|
||
blog engine.</li>
|
||
<li><a href="https://github.com/rafael-santiago/cherry">Cherry</a> -
|
||
Tiny webchat server in Go.</li>
|
||
<li><a href="https://github.com/gocircuit/circuit">Circuit</a> - Circuit
|
||
is a programmable platform-as-a-service (PaaS) and/or
|
||
Infrastructure-as-a-Service (IaaS), for management, discovery,
|
||
synchronization and orchestration of services and hosts comprising cloud
|
||
applications.</li>
|
||
<li><a href="https://github.com/tylertreat/Comcast">Comcast</a> -
|
||
Simulate bad network connections.</li>
|
||
<li><a href="https://github.com/kelseyhightower/confd">confd</a> -
|
||
Manage local application configuration files using templates and data
|
||
from etcd or consul.</li>
|
||
<li><a href="https://github.com/s0rg/crawley">crawley</a> - Web
|
||
scraper/crawler for cli.</li>
|
||
<li><a href="https://github.com/schollz/croc">croc</a> - Easily and
|
||
securely send files or folders from one computer to another.</li>
|
||
<li><a href="https://github.com/documize/community">Documize</a> -
|
||
Modern wiki software that integrates data from SaaS tools.</li>
|
||
<li><a href="https://github.com/scryinfo/dp">dp</a> - Through SDK for
|
||
data exchange with blockchain, developers can get easy access to DAPP
|
||
development.</li>
|
||
<li><a href="https://github.com/odeke-em/drive">drive</a> - Google Drive
|
||
client for the commandline.</li>
|
||
<li><a href="https://github.com/gilbertchen/duplicacy">Duplicacy</a> - A
|
||
cross-platform network and cloud backup tool based on the idea of
|
||
lock-free deduplication.</li>
|
||
<li><a href="https://github.com/mk-5/fjira">fjira</a> - A fuzzy-search
|
||
based terminal UI application for Attlasian Jira</li>
|
||
<li><a href="https://github.com/moshebe/gebug">Gebug</a> - A tool that
|
||
makes debugging of Dockerized Go applications super easy by enabling
|
||
Debugger and Hot-Reload features, seamlessly.</li>
|
||
<li><a href="https://github.com/Antonito/gfile">gfile</a> - Securely
|
||
transfer files between two computers, without any third party, over
|
||
WebRTC.</li>
|
||
<li><a href="https://github.com/shurcooL/Go-Package-Store">Go Package
|
||
Store</a> - App that displays updates for the Go packages in your
|
||
GOPATH.</li>
|
||
<li><a href="https://github.com/Sioro-Neoku/go-peerflix">go-peerflix</a>
|
||
- Video streaming torrent client.</li>
|
||
<li><a href="https://goblin.reaper.im">goblin</a> - Golang binaries in a
|
||
curl, built by goblins.</li>
|
||
<li><a href="https://github.com/Humpheh/goboy">GoBoy</a> - Nintendo Game
|
||
Boy Color emulator written in Go.</li>
|
||
<li><a href="https://github.com/goccmack/gocc">gocc</a> - Gocc is a
|
||
compiler kit for Go written in Go.</li>
|
||
<li><a href="https://github.com/diankong/GoDocTooltip">GoDocTooltip</a>
|
||
- Chrome extension for Go Doc sites, which shows function description as
|
||
tooltip at function list.</li>
|
||
<li><a href="https://github.com/Forceu/gokapi">Gokapi</a> - Lightweight
|
||
server to share files, which expire after a set amount of downloads or
|
||
days. Similar to Firefox Send, but without public upload.</li>
|
||
<li><a href="https://jetbrains.com/go">GoLand</a> - Full featured
|
||
cross-platform Go IDE.</li>
|
||
<li><a href="https://github.com/janpfeifer/gonb">GoNB</a> - Interactive
|
||
Go programming with Jupyter Notebooks (also works in VSCode, Binder and
|
||
Google’s Colab).</li>
|
||
<li><a href="https://github.com/buger/gor">Gor</a> - Http traffic
|
||
replication tool, for replaying traffic from production to stage/dev
|
||
environments in real-time.</li>
|
||
<li><a href="https://github.com/meloalright/guora">Guora</a> - A
|
||
self-hosted Quora like web application written in Go.</li>
|
||
<li><a href="https://github.com/dnnrly/hoofli">hoofli</a> - Generate
|
||
PlantUML diagrams from Chrome or Firefox network inspections.</li>
|
||
<li><a href="https://github.com/edwingeng/hotswap">hotswap</a> - A
|
||
complete solution to reload your go code without restarting your server,
|
||
interrupting or blocking any ongoing procedure.</li>
|
||
<li><a href="https://gohugo.io/">hugo</a> - Fast and Modern Static
|
||
Website Engine.</li>
|
||
<li><a href="https://github.com/thestrukture/ide">ide</a> - Browser
|
||
accessible IDE. Designed for Go with Go.</li>
|
||
<li><a href="https://github.com/dimiro1/ipe">ipe</a> - Open source
|
||
Pusher server implementation compatible with Pusher client libraries
|
||
written in GO.</li>
|
||
<li><a href="https://github.com/assafmo/joincap">joincap</a> -
|
||
Command-line utility for merging multiple pcap files together.</li>
|
||
<li><a href="https://jujucharms.com/">Juju</a> - Cloud-agnostic service
|
||
deployment and orchestration - supports EC2, Azure, Openstack, MAAS and
|
||
more.</li>
|
||
<li><a href="https://github.com/jeffail/leaps">Leaps</a> - Pair
|
||
programming service using Operational Transforms.</li>
|
||
<li><a href="https://github.com/yunabe/lgo">lgo</a> - Interactive Go
|
||
programming with Jupyter. It supports code completion, code inspection
|
||
and 100% Go compatibility.</li>
|
||
<li><a href="https://limetext.github.io">limetext</a> - Lime Text is a
|
||
powerful and elegant text editor primarily developed in Go that aims to
|
||
be a Free and open-source software successor to Sublime Text.</li>
|
||
<li><a href="https://github.com/visualfc/liteide">LiteIDE</a> - LiteIDE
|
||
is a simple, open source, cross-platform Go IDE.</li>
|
||
<li><a href="https://github.com/quii/mockingjay-server">mockingjay</a> -
|
||
Fake HTTP servers and consumer driven contracts from one configuration
|
||
file. You can also make the server randomly misbehave to help do more
|
||
realistic performance tests.</li>
|
||
<li><a href="https://github.com/mehrdadrad/mylg">myLG</a> - Command Line
|
||
Network Diagnostic tool written in Go.</li>
|
||
<li><a href="https://github.com/unix4fun/naclpipe">naclpipe</a> - Simple
|
||
NaCL EC25519 based crypto pipe tool written in Go.</li>
|
||
<li><a href="https://github.com/Code-Hex/Neo-cowsay">Neo-cowsay</a> - 🐮
|
||
cowsay is reborn. for a New Era.</li>
|
||
<li><a href="https://github.com/fogleman/nes">nes</a> - Nintendo
|
||
Entertainment System (NES) emulator written in Go.</li>
|
||
<li><a href="https://github.com/gulien/orbit">Orbit</a> - A simple tool
|
||
for running commands and generating files from templates.</li>
|
||
<li><a href="https://github.com/pointlander/peg">peg</a> - Peg, Parsing
|
||
Expression Grammar, is an implementation of a Packrat parser
|
||
generator.</li>
|
||
<li><a href="https://github.com/root-gg/plik">Plik</a> - Plik is a
|
||
temporary file upload system (Wetransfer like) in Go.</li>
|
||
<li><a href="https://github.com/SpatiumPortae/portal">portal</a> -
|
||
Portal is a quick and easy command-line file transfer utility from any
|
||
computer to another.</li>
|
||
<li><a
|
||
href="https://github.com/servusdei2018/protoncheck">protoncheck</a> -
|
||
ProtonMail module for waybar/polybar/yabar/i3blocks.</li>
|
||
<li><a href="https://github.com/restic/restic">restic</a> -
|
||
De-duplicating backup program.</li>
|
||
<li><a href="https://github.com/alajmo/sake">sake</a> - sake is a
|
||
command runner for local and remote hosts.</li>
|
||
<li><a href="https://github.com/boyter/scc">scc</a> - Sloc Cloc and
|
||
Code, a very fast accurate code counter with complexity calculations and
|
||
COCOMO estimates.</li>
|
||
<li><a href="https://github.com/chrislusf/seaweedfs">Seaweed File
|
||
System</a> - Fast, Simple and Scalable Distributed File System with O(1)
|
||
disk seek.</li>
|
||
<li><a href="https://github.com/msoap/shell2http">shell2http</a> -
|
||
Executing shell commands via http server (for prototyping or remote
|
||
control).</li>
|
||
<li><a href="https://github.com/lucasgomide/snitch">Snitch</a> - Simple
|
||
way to notify your team and many tools when someone has deployed any
|
||
application via Tsuru.</li>
|
||
<li><a href="https://github.com/pressly/sup">Stack Up</a> - Stack Up, a
|
||
super simple deployment tool - just Unix - think of it like ‘make’ for a
|
||
network of servers.</li>
|
||
<li><a href="https://github.com/marwanhawari/stew">stew</a> - An
|
||
independent package manager for compiled binaries.</li>
|
||
<li><a href="https://syncthing.net/">syncthing</a> - Open, decentralized
|
||
file synchronization tool and protocol.</li>
|
||
<li><a href="https://github.com/mehrdadrad/tcpdog">tcpdog</a> - eBPF
|
||
based TCP observability.</li>
|
||
<li><a href="https://github.com/mehrdadrad/tcpprobe">tcpprobe</a> - TCP
|
||
tool for network performance and path monitoring, including socket
|
||
statistics.</li>
|
||
<li><a href="https://github.com/crazcalm/term-quiz">term-quiz</a> -
|
||
Quizzes for your terminal.</li>
|
||
<li><a href="https://github.com/shopify/toxiproxy">toxiproxy</a> - Proxy
|
||
to simulate network and system conditions for automated tests.</li>
|
||
<li><a href="https://tsuru.io/">tsuru</a> - Extensible and open source
|
||
Platform as a Service software.</li>
|
||
<li><a href="https://github.com/lingrino/vaku">vaku</a> - CLI & API
|
||
for folder-based functions in Vault like copy, move, and search.</li>
|
||
<li><a href="https://github.com/VerizonDigital/vflow">vFlow</a> -
|
||
High-performance, scalable and reliable IPFIX, sFlow and Netflow
|
||
collector.</li>
|
||
<li><a href="https://waveterm.dev">Wave Terminal</a> - Wave is an
|
||
open-source, AI-native terminal built for seamless developer workflows
|
||
with inline rendering, a modern UI, and persistent sessions.</li>
|
||
<li><a href="https://github.com/wellington/wellington">wellington</a> -
|
||
Sass project management tool, extends the language with sprite functions
|
||
(like Compass).</li>
|
||
<li><a href="https://github.com/get-woke/woke">woke</a> - Detect
|
||
non-inclusive language in your source code.</li>
|
||
<li><a href="https://github.com/ekkinox/yai">yai</a> - AI powered
|
||
terminal assistant.</li>
|
||
<li><a href="https://git.mills.io/prologic/zs">zs</a> - an extremely
|
||
minimal static site generator.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h1 id="resources">Resources</h1>
|
||
<p><em>Where to discover new Go libraries.</em></p>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="benchmarks">Benchmarks</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/davecheney/autobench">autobench</a> -
|
||
Framework to compare the performance between different Go versions.</li>
|
||
<li><a
|
||
href="https://github.com/mrLSD/go-benchmark-app">go-benchmark-app</a> -
|
||
Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering
|
||
statistics and various parameters for benchmarks and comparison
|
||
results.</li>
|
||
<li><a
|
||
href="https://github.com/tylertreat/go-benchmarks">go-benchmarks</a> -
|
||
Few miscellaneous Go microbenchmarks. Compare some language features to
|
||
alternative approaches.</li>
|
||
<li><a
|
||
href="https://github.com/julienschmidt/go-http-routing-benchmark">go-http-routing-benchmark</a>
|
||
- Go HTTP request router benchmark and comparison.</li>
|
||
<li><a
|
||
href="https://github.com/zerosnake0/go-json-benchmark">go-json-benchmark</a>
|
||
- Go JSON benchmark.</li>
|
||
<li><a
|
||
href="https://github.com/nikolaydubina/go-ml-benchmarks">go-ml-benchmarks</a>
|
||
- benchmarks for machine learning inference in Go.</li>
|
||
<li><a
|
||
href="https://github.com/smallnest/go-web-framework-benchmark">go-web-framework-benchmark</a>
|
||
- Go web framework benchmark.</li>
|
||
<li><a
|
||
href="https://github.com/alecthomas/go_serialization_benchmarks">go_serialization_benchmarks</a>
|
||
- Benchmarks of Go serialization methods.</li>
|
||
<li><a href="https://github.com/PuerkitoBio/gocostmodel">gocostmodel</a>
|
||
- Benchmarks of common basic operations for the Go language.</li>
|
||
<li><a
|
||
href="https://github.com/tyler-smith/golang-sql-benchmark">golang-sql-benchmark</a>
|
||
- Collection of benchmarks for popular Go database/SQL utilities.</li>
|
||
<li><a href="https://github.com/feyeleanor/GoSpeed">gospeed</a> - Go
|
||
micro-benchmarks for calculating the speed of language constructs.</li>
|
||
<li><a href="https://github.com/jimrobinson/kvbench">kvbench</a> -
|
||
Key/Value database benchmark.</li>
|
||
<li><a href="https://github.com/atemerev/skynet">skynet</a> - Skynet 1M
|
||
threads microbenchmark.</li>
|
||
<li><a
|
||
href="https://github.com/fawick/speedtest-resize">speedtest-resize</a> -
|
||
Compare various Image resize algorithms for the Go language.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="conferences">Conferences</h2>
|
||
<ul>
|
||
<li><a href="https://gocon.connpass.com/">GoCon</a> - Tokyo, Japan.</li>
|
||
<li><a href="https://www.godays.io/">GoDays</a> - Berlin, Germany.</li>
|
||
<li><a href="https://golab.io/">GoLab</a> - Florence, Italy.</li>
|
||
<li><a href="https://gopherchina.org">GopherChina</a> - Shanghai,
|
||
China.</li>
|
||
<li><a href="https://www.gophercon.com/">GopherCon</a> - Denver,
|
||
USA.</li>
|
||
<li><a href="https://gophercon.com.au/">GopherCon Australia</a> -
|
||
Sydney, Australia.</li>
|
||
<li><a href="https://gopherconbr.org">GopherCon Brazil</a> -
|
||
Florianópolis, Brazil.</li>
|
||
<li><a href="https://gophercon.eu/">GopherCon Europe</a> - Berlin,
|
||
Germany.</li>
|
||
<li><a href="https://gopherconindia.org/">GopherCon India</a> - Pune,
|
||
India.</li>
|
||
<li><a href="https://www.gophercon.org.il/">GopherCon Israel</a> - Tel
|
||
Aviv, Israel.</li>
|
||
<li><a href="https://www.gophercon-russia.ru">GopherCon Russia</a> -
|
||
Moscow, Russia.</li>
|
||
<li><a href="https://gophercon.sg">GopherCon Singapore</a> - Mapletree
|
||
Business City, Singapore.</li>
|
||
<li><a href="https://www.gophercon.co.uk/">GopherCon UK</a> - London,
|
||
UK.</li>
|
||
<li><a href="https://gophercon.vn/">GopherCon Vietnam</a> - Ho Chi Minh
|
||
City, Vietnam.</li>
|
||
<li><a href="https://www.gowestconf.com/">GoWest Conference</a> - Lehi,
|
||
USA.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="e-books">E-Books</h2>
|
||
<h3 id="e-books-for-purchase">E-books for purchase</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.manning.com/books/100-go-mistakes-how-to-avoid-them">100
|
||
Go Mistakes: How to Avoid Them</a></li>
|
||
<li><a href="https://nostarch.com/blackhatgo">Black Hat Go</a> - Go
|
||
programming for hackers and pentesters.</li>
|
||
<li><a
|
||
href="https://www.manning.com/books/build-an-orchestrator-in-go">Build
|
||
an Orchestrator in Go</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/continuous-delivery-in-go">Continuous
|
||
Delivery in Go</a> - This practical guide to continuous delivery shows
|
||
you how to rapidly establish an automated pipeline that will improve
|
||
your testing, code quality, and final product.</li>
|
||
<li><a
|
||
href="https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208">Creative
|
||
DIY Microcontroller Project With TinyGo and WebAssembly</a> - An
|
||
introduction into the TinyGo compiler with projects involving Arduino
|
||
and WebAssembly.</li>
|
||
<li><a href="https://www.manning.com/books/effective-go">Effective Go:
|
||
Elegant, efficient, and testable code</a> - Unlock Go’s unique
|
||
perspective on program design, and start writing simple, maintainable,
|
||
and testable Go code.</li>
|
||
<li><a href="https://bitfieldconsulting.com/books/love">For the Love of
|
||
Go</a> - An introductory book for Go beginners.</li>
|
||
<li><a
|
||
href="https://www.manning.com/books/go-in-practice-second-edition">Go in
|
||
Practice, Second Edition</a> - 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.</li>
|
||
<li><a href="https://bitfieldconsulting.com/books/generics">Know Go:
|
||
Generics</a> - A guide to understanding and using generics in Go.</li>
|
||
<li><a href="https://lets-go.alexedwards.net">Lets-Go</a> - A
|
||
step-by-step guide to creating fast, secure and maintanable web
|
||
applications with Go.</li>
|
||
<li><a
|
||
href="https://lets-go-further.alexedwards.net">Lets-Go-Further</a> -
|
||
Advanced patterns for building APIs and web applications in Go.</li>
|
||
<li><a href="https://bitfieldconsulting.com/books/tests">The Power of
|
||
Go: Tests</a> - A guide to testing in Go.</li>
|
||
<li><a href="https://bitfieldconsulting.com/books/tools">The Power of
|
||
Go: Tools</a> - A guide to writing command-line tools in Go.</li>
|
||
<li><a href="https://compilerbook.com">Writing A Compiler In Go</a></li>
|
||
<li><a href="https://interpreterbook.com">Writing An Interpreter In
|
||
Go</a> - Book that introduces dozens of techniques for writing
|
||
idiomatic, expressive, and efficient Go code that avoids common
|
||
pitfalls.</li>
|
||
</ul>
|
||
<h3 id="free-e-books">Free e-books</h3>
|
||
<ul>
|
||
<li><a href="https://leanpub.com/GoNotebook/read">A Go Developer’s
|
||
Notebook</a></li>
|
||
<li><a href="http://www.golang-book.com/">An Introduction to Programming
|
||
in Go</a></li>
|
||
<li><a
|
||
href="https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/">Build
|
||
Web Application with Golang</a></li>
|
||
<li><a
|
||
href="https://codegangsta.gitbooks.io/building-web-apps-with-go/content/">Building
|
||
Web Apps With Go</a></li>
|
||
<li><a href="https://go101.org">Go 101</a> - A book focusing on Go
|
||
syntax/semantics and all kinds of details.</li>
|
||
<li><a href="https://github.com/chai2010/go-ast-book">Go AST Book
|
||
(Chinese)</a> - A book focusing on Go <code>go/*</code> packages.</li>
|
||
<li><a href="https://leanpub.com/gofaster">Go Faster</a> - This book
|
||
seeks to shorten your learning curve and help you become a proficient Go
|
||
programmer, faster.</li>
|
||
<li><a href="https://github.com/thedevsir/gosuccinctly">Go
|
||
Succinctly</a> - in Persian.</li>
|
||
<li><a href="https://threedots.tech/go-with-the-domain/">Go with the
|
||
domain</a> - A book showing how to apply DDD, Clean Architecture, and
|
||
CQRS by practical refactoring.</li>
|
||
<li><a href="https://github.com/dariubs/GoBooks">GoBooks</a> - A curated
|
||
list of Go books.</li>
|
||
<li><a
|
||
href="https://www.digitalocean.com/community/books/how-to-code-in-go-ebook">How
|
||
To Code in Go eBook</a> - A 600 page introduction to Go aimed at first
|
||
time developers.</li>
|
||
<li><a
|
||
href="https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf">Learning
|
||
Go</a></li>
|
||
<li><a href="https://jan.newmarch.name/golang/">Network Programming With
|
||
Go</a></li>
|
||
<li><a href="https://www.practical-go-lessons.com/">Practical Go
|
||
Lessons</a></li>
|
||
<li><a
|
||
href="https://blasrodri.github.io/spaceship-go-gh-pages/">Spaceship Go A
|
||
Journey to the Standard Library</a></li>
|
||
<li><a href="https://www.gopl.io/">The Go Programming Language</a></li>
|
||
<li><a
|
||
href="https://github.com/polaris1119/The-Golang-Standard-Library-by-Example">The
|
||
Golang Standard Library by Example (Chinese)</a></li>
|
||
<li><a
|
||
href="https://github.com/thewhitetulip/web-dev-golang-anti-textbook/">Web
|
||
Application with Go the Anti-Textbook</a></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="gophers">Gophers</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/MariaLetta/free-gophers-pack">Free
|
||
Gophers Pack</a> - Gopher graphics pack by Maria Letta with
|
||
illustrations and emotional characters in vector and raster.</li>
|
||
<li><a
|
||
href="https://github.com/keygx/Go-gopher-Vector">Go-gopher-Vector</a> -
|
||
Go gopher Vector Data [.ai, .svg].</li>
|
||
<li><a href="https://github.com/GolangUA/gopher-logos">gopher-logos</a>
|
||
- adorable gopher logos.</li>
|
||
<li><a
|
||
href="https://github.com/tenntenn/gopher-stickers">gopher-stickers</a></li>
|
||
<li><a
|
||
href="https://github.com/shalakhin/gophericons">gophericons</a></li>
|
||
<li><a href="https://github.com/matryer/gopherize.me">gopherize.me</a> -
|
||
Gopherize yourself.</li>
|
||
<li><a href="https://github.com/ashleymcnamara/gophers">gophers</a> -
|
||
Gopher artworks by Ashley McNamara.</li>
|
||
<li><a href="https://github.com/egonelbre/gophers">gophers</a> - Free
|
||
gophers.</li>
|
||
<li><a href="https://github.com/rogeralsing/gophers">gophers</a> -
|
||
random gopher graphics.</li>
|
||
<li><a href="https://github.com/sillecelik/go-gopher">gophers</a> -
|
||
Gopher amigurumi toy pattern.</li>
|
||
<li><a href="https://github.com/scraly/gophers">gophers</a> - Gophers by
|
||
Aurélie Vache.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="meetups">Meetups</h2>
|
||
<ul>
|
||
<li><a href="https://www.meetup.com/Basel-Go-Meetup/">Basel Go
|
||
Meetup</a></li>
|
||
<li><a href="https://www.meetup.com/Belfast-Gophers/">Belfast
|
||
Gophers</a></li>
|
||
<li><a href="https://www.meetup.com/golang-serbia/">Belgrade Golang
|
||
Meetup</a></li>
|
||
<li><a href="https://www.meetup.com/golang-users-berlin/">Berlin
|
||
Golang</a></li>
|
||
<li><a href="https://www.meetup.com/Brisbane-Golang-Meetup/">Brisbane
|
||
Gophers</a></li>
|
||
<li><a href="https://www.meetup.com/berner-go-meetup/">Bärner Go Meetup
|
||
- Berne, Switzerland</a></li>
|
||
<li><a href="https://www.meetup.com/Canberra-Gophers/">Canberra
|
||
Gophers</a></li>
|
||
<li><a href="https://www.meetup.com/golanguagenewyork/">Go Language
|
||
NYC</a></li>
|
||
<li><a href="https://www.meetup.com/Go-London-User-Group/">Go London
|
||
User Group</a></li>
|
||
<li><a href="https://www.meetup.com/Go-Remote-Meetup/">Go Remote
|
||
Meetup</a></li>
|
||
<li><a href="https://www.meetup.com/go-toronto/">Go Toronto</a></li>
|
||
<li><a href="https://www.meetup.com/Go-Users-Group-Atlanta/">Go User
|
||
Group Atlanta</a></li>
|
||
<li><a href="https://www.meetup.com/GoBandung/">GoBandung</a></li>
|
||
<li><a href="https://www.meetup.com/gobridge/">GoBridge, San Francisco,
|
||
CA</a></li>
|
||
<li><a href="https://www.meetup.com/GoCracow/">GoCracow - Krakow,
|
||
Poland</a></li>
|
||
<li><a href="https://www.meetup.com/GoJakarta/">GoJakarta</a></li>
|
||
<li><a href="https://www.meetup.com/golang-amsterdam/">Golang
|
||
Amsterdam</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Argentina/">Golang
|
||
Argentina</a></li>
|
||
<li><a href="https://www.meetup.com/Athens-Gophers/">Golang
|
||
Athens</a></li>
|
||
<li><a href="https://www.meetup.com/BaltimoreGolang/">Golang Baltimore,
|
||
MD</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Bangalore/">Golang
|
||
Bangalore</a></li>
|
||
<li><a href="https://www.meetup.com/go-belo-horizonte/">Golang Belo
|
||
Horizonte - Brazil</a></li>
|
||
<li><a href="https://www.meetup.com/bostongo/">Golang Boston</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Bulgaria/">Golang
|
||
Bulgaria</a></li>
|
||
<li><a href="https://www.meetup.com/Cardiff-Go-Meetup/">Golang Cardiff,
|
||
UK</a></li>
|
||
<li><a href="https://www.meetup.com/Go-Cph/">Golang Copenhagen</a></li>
|
||
<li><a href="https://www.meetup.com/GolangCWB/">Golang Curitiba -
|
||
Brazil</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-DC/">Golang DC, Arlington,
|
||
VA</a></li>
|
||
<li><a href="https://www.meetup.com/golang-dorset/">Golang Dorset,
|
||
UK</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Estonia/">Golang
|
||
Estonia</a></li>
|
||
<li><a href="https://www.meetup.com/Gurgaon-Go-Meetup/">Golang Gurgaon,
|
||
India</a></li>
|
||
<li><a href="https://www.meetup.com/Go-User-Group-Hamburg/">Golang
|
||
Hamburg - Germany</a></li>
|
||
<li><a href="https://www.meetup.com/Go-Israel/">Golang Israel</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Kathmandu/">Golang
|
||
Kathmandu</a></li>
|
||
<li><a href="https://www.meetup.com/GDG-Golang-Korea/">Golang
|
||
Korea</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Peru/">Golang Lima -
|
||
Peru</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Lyon/">Golang Lyon</a></li>
|
||
<li><a href="https://www.meetup.com/fr-FR/Golang-Marseille/">Golang
|
||
Marseille</a></li>
|
||
<li><a href="https://www.meetup.com/golang-mel/">Golang
|
||
Melbourne</a></li>
|
||
<li><a href="https://www.meetup.com/en-AU/Golang-North-East/">Golang
|
||
North East</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Paris/">Golang Paris</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Poland/">Golang
|
||
Poland</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Pune/">Golang Pune</a></li>
|
||
<li><a href="https://www.meetup.com/golang-rotterdam/">Golang
|
||
Rotterdam</a></li>
|
||
<li><a href="https://www.meetup.com/golangsg/">Golang Singapore</a></li>
|
||
<li><a href="https://www.meetup.com/Go-Stockholm/">Golang
|
||
Stockholm</a></li>
|
||
<li><a href="https://www.meetup.com/golang-syd/">Golang Sydney,
|
||
AU</a></li>
|
||
<li><a href="https://www.meetup.com/golangbr/">Golang São Paulo -
|
||
Brazil</a></li>
|
||
<li><a href="https://www.meetup.com/golang-taipei-meetup/">Golang
|
||
Taipei</a></li>
|
||
<li><a href="https://www.meetup.com/thessaloniki-golang-meetup/">Golang
|
||
Thessaloniki</a></li>
|
||
<li><a href="https://kommunity.com/goturkiye">Golang Turkey</a></li>
|
||
<li><a href="https://www.meetup.com/golangvan/">Golang Vancouver,
|
||
BC</a></li>
|
||
<li><a href="https://www.meetup.com/viennago/">Golang Vienna,
|
||
Austria</a></li>
|
||
<li><a href="https://www.meetup.com/Golang-Moscow/">Golang
|
||
Москва</a></li>
|
||
<li><a href="https://www.meetup.com/golangsf">GoSF - San Francisco,
|
||
CA</a></li>
|
||
<li><a href="https://www.meetup.com/Istanbul-Golang/">Istanbul
|
||
Golang</a></li>
|
||
<li><a href="https://www.meetup.com/GolangNigeria/">Lagos
|
||
Gophers</a></li>
|
||
<li><a href="https://www.meetup.com/golang/">Seattle Go
|
||
Programmers</a></li>
|
||
<li><a href="https://www.meetup.com/uagolang/">Ukrainian Golang User
|
||
Groups</a></li>
|
||
<li><a href="https://www.meetup.com/utahgophers/">Utah Go User
|
||
Group</a></li>
|
||
<li><a href="https://www.meetup.com/Women-Who-Go/">Women Who Go - San
|
||
Francisco, CA</a></li>
|
||
<li><a href="https://www.meetup.com/zurich-gophers/">Zürich Gophers -
|
||
Zurich, Switzerland</a></li>
|
||
</ul>
|
||
<p><em>Add the group of your city/country here (send
|
||
<strong>PR</strong>)</em></p>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="style-guides">Style Guides</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/bahlo/go-styleguide">bahlo/go-styleguide</a></li>
|
||
<li><a
|
||
href="https://github.com/cockroachdb/cockroach/blob/master/docs/style.md">CockroachDB</a></li>
|
||
<li><a
|
||
href="https://docs.gitlab.com/ee/development/go_guide/">GitLab</a></li>
|
||
<li><a href="https://google.github.io/styleguide/go/">Google</a></li>
|
||
<li><a
|
||
href="https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/style-guides/go-style.rst">Hyperledger</a></li>
|
||
<li><a
|
||
href="https://github.com/boramalper/magnetico/wiki/magnetico-Design-Specification">Magnetico</a></li>
|
||
<li><a
|
||
href="https://docs.sourcegraph.com/dev/background-information/languages/go">Sourcegraph</a></li>
|
||
<li><a
|
||
href="https://thanos.io/tip/contributing/coding-style-guide.md/">Thanos</a></li>
|
||
<li><a
|
||
href="https://github.com/betrybe/playbook-go/blob/main/README_EN.md">Trybe</a></li>
|
||
<li><a
|
||
href="https://github.com/uber-go/guide/blob/master/style.md">Uber</a></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="social-media">Social Media</h2>
|
||
<h3 id="twitter">Twitter</h3>
|
||
<ul>
|
||
<li><a href="https://twitter.com/GoDiscussions"><span class="citation"
|
||
data-cites="GoDiscussions">@GoDiscussions</span></a></li>
|
||
<li><a href="https://twitter.com/golang"><span class="citation"
|
||
data-cites="golang">@golang</span></a></li>
|
||
<li><a href="https://twitter.com/golang_news"><span class="citation"
|
||
data-cites="golang_news">@golang_news</span></a></li>
|
||
<li><a href="https://twitter.com/golangch"><span class="citation"
|
||
data-cites="golangch">@golangch</span></a></li>
|
||
<li><a href="https://twitter.com/golangflow"><span class="citation"
|
||
data-cites="golangflow">@golangflow</span></a></li>
|
||
<li><a href="https://twitter.com/golangweekly"><span class="citation"
|
||
data-cites="golangweekly">@golangweekly</span></a></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="reddit">Reddit</h3>
|
||
<ul>
|
||
<li><a href="https://www.reddit.com/r/golang/">r/golang</a></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="websites">Websites</h2>
|
||
<ul>
|
||
<li><a href="https://go.libhunt.com">Awesome Go <span class="citation"
|
||
data-cites="LibHunt">@LibHunt</span></a> - Your go-to Go Toolbox.</li>
|
||
<li><a
|
||
href="https://github.com/amit-davidson/awesome-golang-workshops">Awesome
|
||
Golang Workshops</a> - A curated list of awesome golang workshops.</li>
|
||
<li><a href="https://github.com/lukasz-madon/awesome-remote-job">Awesome
|
||
Remote Job</a> - Curated list of awesome remote jobs. A lot of them are
|
||
looking for Go hackers.</li>
|
||
<li><a
|
||
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>
|
||
- List of other amazingly awesome lists.</li>
|
||
<li><a
|
||
href="https://github.com/xwjdsh/awesome-go-extra">awesome-go-extra</a> -
|
||
Parse awesome-go README file and generate a new README file with repo
|
||
info.</li>
|
||
<li><a href="https://codewithmukesh.com/blog/category/golang">Code with
|
||
Mukesh</a> - Software Engineer and Blogs @ codewithmukesh.com.</li>
|
||
<li><a href="https://codingmystery.com">Coding Mystery</a> - Solve
|
||
exciting escape-room-inspired programming challenges using Go.</li>
|
||
<li><a href="https://www.codingame.com/">CodinGame</a> - Learn Go by
|
||
solving interactive tasks using small games as practical examples.</li>
|
||
<li><a href="https://kandi.openweaver.com/explore/go">Explore Go
|
||
Libraries & Projects</a> - Discover & find a curated list of
|
||
popular & new Go libraries, top authors, trending project kits,
|
||
discussions, tutorials & learning resources on kandi.</li>
|
||
<li><a href="https://blog.golang.org">Go Blog</a> - The official Go
|
||
blog.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=nvoIPQYdx9g&list=PLEcwzBXTPUE_YQR7R0BRtHBYJ0LN3Y0i3">Go
|
||
Code Club</a> - A group of Gophers read and discuss a different Go
|
||
project every week.</li>
|
||
<li><a href="https://hashnode.com/n/go">Go Community on Hashnode</a> -
|
||
Community of Gophers on Hashnode.</li>
|
||
<li><a href="https://forum.golangbridge.org">Go Forum</a> - Forum to
|
||
discuss Go.</li>
|
||
<li><a href="https://github.com/golang/go/wiki/Projects">Go Projects</a>
|
||
- List of projects on the Go community wiki.</li>
|
||
<li><a href="https://go-proverbs.github.io/">Go Proverbs</a> - Go
|
||
Proverbs by Rob Pike.</li>
|
||
<li><a href="https://goreportcard.com">Go Report Card</a> - A report
|
||
card for your Go package.</li>
|
||
<li><a href="https://go.dev/">go.dev</a> - A hub for Go developers.</li>
|
||
<li><a href="https://github.com/ninedraft/gocryforhelp">gocryforhelp</a>
|
||
- Collection of Go projects that needs help. Good place to start your
|
||
open-source way in Go.</li>
|
||
<li><a href="https://golangjob.xyz">Golang Developer Jobs</a> -
|
||
Developer Jobs exclusively for Golang related Roles.</li>
|
||
<li><a href="https://golangflow.io">Golang Flow</a> - Post Updates,
|
||
News, Packages and more.</li>
|
||
<li><a href="https://golangnews.com">Golang News</a> - Links and news
|
||
about Go programming.</li>
|
||
<li><a href="https://golangresources.com">Golang Resources</a> - A
|
||
curation of the best articles, exercises, talks and videos to learn
|
||
Go.</li>
|
||
<li><a href="https://discu.eu/weekly/golang/">Golang Weekly</a> - Each
|
||
monday projects, tutorials and articles about Go.</li>
|
||
<li><a
|
||
href="https://github.com/mholt/golang-graphics">golang-graphics</a> -
|
||
Collection of Go images, graphics, and art.</li>
|
||
<li><a
|
||
href="https://groups.google.com/forum/#!forum/golang-nuts">golang-nuts</a>
|
||
- Go mailing list.</li>
|
||
<li><a
|
||
href="https://plus.google.com/communities/114112804251407510571">Google
|
||
Plus Community</a> - The Google+ community for #golang enthusiasts.</li>
|
||
<li><a href="https://invite.slack.golangbridge.org">Gopher Community
|
||
Chat</a> - Join Our New Slack Community For Gophers (<a
|
||
href="https://blog.gopheracademy.com/gophers-slack-community/">Understand
|
||
how it came</a>).</li>
|
||
<li><a href="https://gophercises.com/">Gophercises</a> - Free coding
|
||
exercises for budding gophers.</li>
|
||
<li><a href="https://m-zajac.github.io/json2go">json2go</a> - Advanced
|
||
JSON to Go struct conversion - online tool.</li>
|
||
<li><a href="https://www.youtube.com/c/justforfunc">justforfunc</a> -
|
||
Youtube channel dedicated to Go programming language tips and tricks,
|
||
hosted by Francesc Campoy <a href="https://twitter.com/francesc"><span
|
||
class="citation" data-cites="francesc">@francesc</span></a>.</li>
|
||
<li><a href="https://blog.learngoprogramming.com">Learn Go
|
||
Programming</a> - Learn Go concepts with illustrations.</li>
|
||
<li><a href="https://madewithgolang.com/?ref=awesome-go">Made with
|
||
Golang</a></li>
|
||
<li><a href="https://pkg.go.dev/">pkg.go.dev</a> - Documentation for
|
||
open source Go packages.</li>
|
||
<li><a href="https://www.reddit.com/r/golang">r/Golang</a> - News about
|
||
Go.</li>
|
||
<li><a href="https://studygolang.com">studygolang</a> - The community of
|
||
studygolang in China.</li>
|
||
<li><a href="https://github.com/trending?l=go">Trending Go repositories
|
||
on GitHub today</a> - Good place to find new Go libraries.</li>
|
||
<li><a href="https://tutorialedge.net/course/golang/">TutorialEdge -
|
||
Golang</a></li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="tutorials">Tutorials</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/">50
|
||
Shades of Go</a> - Traps, Gotchas, and Common Mistakes for New Golang
|
||
Devs.</li>
|
||
<li><a
|
||
href="https://betterstack.com/community/guides/logging/logging-in-go/">A
|
||
Comprehensive Guide to Structured Logging in Go</a> - 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.</li>
|
||
<li><a
|
||
href="https://snipcart.com/blog/golang-ecommerce-ponzu-cms-demo?utm_term=golang-ecommerce-ponzu-cms-demo">A
|
||
Guide to Golang E-Commerce</a> - Building a Golang site for e-commerce
|
||
(demo included).</li>
|
||
<li><a href="https://tour.golang.org/">A Tour of Go</a> - Interactive
|
||
tour of Go.</li>
|
||
<li><a href="https://link.medium.com/O9YQlx89Htb">Build a Database in
|
||
1000 lines of code</a> - Build a NoSQL Database From Zero in 1000 Lines
|
||
of Code.</li>
|
||
<li><a
|
||
href="https://github.com/astaxie/build-web-application-with-golang">Build
|
||
web application with Golang</a> - Golang ebook intro how to build a web
|
||
app with golang.</li>
|
||
<li><a
|
||
href="https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql">Building
|
||
and Testing a REST API in Go with Gorilla Mux and PostgreSQL</a> - We’ll
|
||
write an API with the help of the powerful Gorilla Mux.</li>
|
||
<li><a
|
||
href="https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin">Building
|
||
Go Web Applications and Microservices Using Gin</a> - Get familiar with
|
||
Gin and find out how it can help you reduce boilerplate code and build a
|
||
request handling pipeline.</li>
|
||
<li><a
|
||
href="https://medium.com/@rocketlaunchr.cloud/caching-slow-database-queries-1085d308a0c9">Caching
|
||
Slow Database Queries</a> - How to cache slow database queries.</li>
|
||
<li><a
|
||
href="https://medium.com/@rocketlaunchr.cloud/canceling-mysql-in-go-827ed8f83b30">Canceling
|
||
MySQL</a> - How to cancel MySQL queries.</li>
|
||
<li><a href="https://app.codecrafters.io/tracks/go">CodeCrafters Golang
|
||
Track</a> - Achieve mastery in advanced Go by building your own Redis,
|
||
Docker, Git, and SQLite. Featuring goroutines, systems programming, file
|
||
I/O, and more.</li>
|
||
<li><a
|
||
href="https://github.com/haveyoudebuggedit/go-patterns">Debugged.it Go
|
||
patterns</a> - Advanced Go patterns with ready-to-run examples.</li>
|
||
<li><a href="https://github.com/shubhamzanwar/design-patterns">Design
|
||
Patterns in Go</a> - Collection of programming design patterns
|
||
implemented in Go.</li>
|
||
<li><a
|
||
href="https://github.com/miguelmota/ethereum-development-with-go-book">Ethereum
|
||
Development with Go</a> - A little e-book on Ethereum Development with
|
||
Go.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?v=9D4yH7e_ea8&list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x">Games
|
||
With Go</a> - A video series teaching programming and game
|
||
development.</li>
|
||
<li><a href="https://gobyexample.com/">Go By Example</a> - Hands-on
|
||
introduction to Go using annotated example programs.</li>
|
||
<li><a href="https://github.com/a8m/go-lang-cheat-sheet">Go Cheat
|
||
Sheet</a> - Go’s reference card.</li>
|
||
<li><a href="http://go-database-sql.org/">Go database/sql tutorial</a> -
|
||
Introduction to database/sql.</li>
|
||
<li><a href="https://github.com/harrytran103/7_days_of_go">Go in 7
|
||
days</a> - Learn everything about Go in 7 days (from a Nodejs
|
||
developer).</li>
|
||
<li><a href="https://www.javatpoint.com/go-tutorial">Go Language
|
||
Tutorial</a> - Learn Go language Tutorial.</li>
|
||
<li><a href="https://www.tutorialspoint.com/go/index.htm">Go
|
||
Tutorial</a> - Learn Go programming.</li>
|
||
<li><a
|
||
href="https://tutorialedge.net/golang/go-webassembly-tutorial/">Go
|
||
WebAssembly Tutorial - Building a Simple Calculator</a></li>
|
||
<li><a
|
||
href="https://github.com/evrone/go-clean-template">go-clean-template</a>
|
||
- Clean Architecture template for Golang services.</li>
|
||
<li><a href="https://github.com/tmrts/go-patterns">go-patterns</a> -
|
||
Curated list of Go design patterns, recipes and idioms.</li>
|
||
<li><a href="https://github.com/bnkamalesh/goapp">goapp</a> - An
|
||
opinionated guideline to structure & develop a Go web
|
||
application/service.</li>
|
||
<li><a
|
||
href="https://github.com/miguelmota/golang-for-nodejs-developers">Golang
|
||
for Node.js Developers</a> - Examples of Golang compared to Node.js for
|
||
learning.</li>
|
||
<li><a
|
||
href="https://www.freecodecamp.org/news/golang-tutorial-list-free-courses-learn-go-programming-language/">Golang
|
||
Tutorial Guide</a> - A List of Free Courses to Learn the Go Programming
|
||
Language.</li>
|
||
<li><a href="https://golangbot.com/learn-golang-series/">Golangbot</a> -
|
||
Tutorials to get started with programming in Go.</li>
|
||
<li><a href="https://gophercoding.com/">GopherCoding</a> - Collection of
|
||
code snippets and tutorials to help tackle every day issues.</li>
|
||
<li><a href="https://gophersnippets.com/">GopherSnippets</a> - Code
|
||
snippets with tests and testable examples for the Go programming
|
||
language.</li>
|
||
<li><a href="https://gosamples.dev/">Gosamples</a> - Collection of code
|
||
snippets that let you solve everyday code problems.</li>
|
||
<li><a href="https://hackr.io/tutorials/learn-golang">Hackr.io</a> -
|
||
Learn Go from the best online golang tutorials submitted & voted by
|
||
the golang programming community.</li>
|
||
<li><a href="https://github.com/Haraj-backend/hex-monscape">Hex
|
||
Monscape</a> - Getting started guidelines in writing maintainable code
|
||
using Hexagonal Architecture.</li>
|
||
<li><a
|
||
href="https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5">How
|
||
to Benchmark: dbq vs sqlx vs GORM</a> - Learn how to benchmark in Go. As
|
||
a case-study, we will benchmark dbq, sqlx and GORM.</li>
|
||
<li><a
|
||
href="https://semaphoreci.com/community/tutorials/how-to-deploy-a-go-web-application-with-docker">How
|
||
To Deploy a Go Web Application with Docker</a> - Learn how to use Docker
|
||
for Go development and how to build production Docker images.</li>
|
||
<li><a
|
||
href="https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go">How
|
||
to Use Godog for Behavior-driven Development in Go</a> - Get started
|
||
with Godog — a Behavior-driven development framework for building and
|
||
testing Go applications.</li>
|
||
<li><a href="https://github.com/inancgumus/learngo">Learn Go with 1000+
|
||
Exercises</a> - Learn Go with thousands of examples, exercises, and
|
||
quizzes.</li>
|
||
<li><a href="https://github.com/quii/learn-go-with-tests">Learn Go with
|
||
TDD</a> - Learn Go with test-driven development.</li>
|
||
<li><a
|
||
href="https://dev.to/aurelievache/learning-go-by-examples-introduction-448n">Learning
|
||
Go by examples</a> - Series of articles in order to learn Golang
|
||
language by concrete applications as example.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_">Microservices
|
||
with Go</a> - Dive deep into building microservices using Go, including
|
||
gRPC.</li>
|
||
<li><a href="https://www.youtube.com/packagemain">package main</a> -
|
||
YouTube channel about Programming in Go.</li>
|
||
<li><a
|
||
href="https://www.coursera.org/specializations/google-golang">Programming
|
||
with Google Go</a> - Coursera Specialization to learn about Go from
|
||
scratch.</li>
|
||
<li><a
|
||
href="https://qvault.io/golang/struct-field-ordering-memory/">Saving a
|
||
Third of Our Memory by Re-ordering Go Struct Fields</a> - How
|
||
inefficient field ordering in Go structs.</li>
|
||
<li><a
|
||
href="https://betterstack.com/community/guides/scaling-go/">Scaling Go
|
||
Applications</a> - Everything about building, deploying and scaling Go
|
||
applications in production.</li>
|
||
<li><a
|
||
href="https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02">The
|
||
world’s easiest introduction to WebAssembly with Golang</a></li>
|
||
<li><a href="https://dev.to/aurelievache/series/26234">Understanding Go
|
||
in a visual way</a> - Learn Go visually</li>
|
||
<li><a href="https://www.w3basic.com/golang/">W3basic Go Tutorials</a> -
|
||
W3Basic provides an in-depth tutorial and well-organized content to
|
||
learn Golang programming.</li>
|
||
<li><a href="https://github.com/mkaz/working-with-go">Working with
|
||
Go</a> - Intro to go for experienced programmers.</li>
|
||
<li><a href="https://yourbasic.org/golang">Your basic Go</a> - Huge
|
||
collection of tutorials and how to’s.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h3 id="guided-learning">Guided Learning</h3>
|
||
<ul>
|
||
<li><a href="https://roadmap.sh/golang">The Go Developer Roadmap</a> - A
|
||
visual roadmap that new Go developers can follow through to help them
|
||
learn Go.</li>
|
||
<li><a href="https://tutorialedge.net/paths/golang/">The Go Learning
|
||
Path</a> - A guided learning path containing a mix of free and premium
|
||
resources.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|