Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
zero-alloc-awesome-go
Zero Allocation Golang Packages / Stuff
https://github.com/cloudxaas/zero-alloc-awesome-go
Last synced: 4 days ago
JSON representation
-
Database
-
Goroutines
-
Search and Analytic Databases
- ants - A high-performance and low-cost goroutine pool in Go.
-
-
Logging
-
Search and Analytic Databases
- zerolog - Zero-allocation JSON logger.
-
-
Machine Learning
-
Search and Analytic Databases
- bayesian - Naive Bayesian Classification for Golang.
- CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.
- ddt - Dynamic decision tree, create trees defining customizable rules.
- eaopt - An evolutionary optimization library.
- evoli - Genetic Algorithm and Particle Swarm Optimization library.
- fonet - A Deep Neural Network library written in Go.
- go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms.
- go-deep - A feature-rich neural network library in Go.
- go-featureprocessing - Fast and convenient feature processing for low latency machine learning in Go.
- go-galib - Genetic Algorithms library written in Go / golang.
- go-pr - Pattern recognition package in Go lang.
- gobrain - Neural Networks written in go.
- godist - Various probability distributions, and associated methods.
- goga - Genetic algorithm library for Go.
- GoLearn - General Machine Learning library for Go.
- golinear - liblinear bindings for Go.
- GoMind - A simplistic Neural Network Library in Go.
- goml - On-line Machine Learning in Go.
- gonet - Neural Network for Go.
- Goptuna - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized.
- goRecommend - Recommendation Algorithms library written in Go.
- gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms.
- gorse - An offline recommender system backend based on collaborative filtering written in Go.
- goscore - Go Scoring API for PMML.
- gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library.
- libsvm - libsvm golang version derived work based on LIBSVM 3.14.
- m2cgen - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support.
- neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT).
- neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation.
- ocrserver - A simple OCR API server, seriously easy to be deployed by Docker and Heroku.
- onnx-go - Go Interface to Open Neural Network Exchange (ONNX).
- probab - Probability distribution functions. Bayesian inference. Written in pure Go.
- randomforest - Easy to use Random Forest library for Go.
- regommend - Recommendation & collaborative filtering engine.
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go.
- tfgo - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python.
- Varis - Golang Neural Network.
- go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library.
-
-
Messaging
-
Search and Analytic Databases
- ami - Go client to reliable queues based on Redis Cluster Streams.
- amqp - Go RabbitMQ Client Library.
- APNs2 - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps.
- Asynq - A simple, reliable, and efficient distributed task queue for Go built on top of Redis.
- Beaver - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
- Benthos - A message streaming bridge between a range of protocols.
- Bus - Minimalist message bus implementation for internal communication.
- Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.
- Chanify - A push notification server send message to your iOS devices.
- Commander - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka.
- Confluent Kafka Golang Client - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform.
- dbus - Native Go bindings for D-Bus.
- drone-line - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI.
- emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.
- event - Implementation of the pattern observer.
- EventBus - The lightweight event bus with async compatibility.
- gaurun-client - Gaurun Client written in Go.
- Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io).
- go-mq - RabbitMQ client with declarative configuration.
- go-notify - Native implementation of the freedesktop notification spec.
- go-nsq - the official Go package for NSQ.
- go-res - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate.
- go-socket.io - socket.io library for golang, a realtime application framework.
- go-vitotrol - Client library to Viessmann Vitotrol web service.
- Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.
- golongpoll - HTTP longpoll server library that makes web pub-sub simple.
- gopush-cluster - gopush-cluster is a go push server cluster.
- gorush - Push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm).
- gosd - A library for scheduling when to dispatch a message to a channel.
- guble - 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.
- hare - A user friendly library for sending messages and listening to TCP sockets.
- hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges.
- jazz - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages.
- machinery - Asynchronous task queue/job queue based on distributed message passing.
- mangos - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability.
- melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling.
- Mercure - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events).
- messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD.
- NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
- nsq-event-bus - A tiny wrapper around NSQ topic and channel.
- oplog - Generic oplog/replication system for REST APIs.
- pubsub - Simple pubsub package for go.
- Quamina - Fast pattern-matching for filtering messages and events.
- rabbus - A tiny wrapper over amqp exchanges and queues.
- rabtap - RabbitMQ swiss army knife cli app.
- RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue.
- Ratus - Ratus is a RESTful asynchronous task queue server.
- redisqueue - redisqueue provides a producer and consumer of a queue that uses Redis streams.
- rmqconn - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed.
- Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices.
- Watermill - Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog.
- zmq4 - Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2).
- mob - mob is a generic-based, simple mediator / event aggregator library. It supports in-process requests / events processing.
- sarama - Go library for Apache Kafka.
-
-
Microsoft Office
-
Search and Analytic Databases
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
-
Microsoft Excel
- exl - Excel binding to struct written in Go.(Only supports Go1.18+)
- go-excel - A simple and light reader to read a relate-db-like excel as a table.
- goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files.
- xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
- xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
-
-
Miscellaneous
-
Dependency Injection
- alice - Additive dependency injection container for Golang.
- di - A dependency injection container for go programming language.
- dig - A reflection based dependency injection toolkit for Go.
- dingo - A dependency injection toolkit for Go, based on Guice.
- do - A dependency injection framework based on Generics.
- fx - A dependency injection based application framework for Go (built on top of dig).
- gocontainer - Simple Dependency Injection Container.
- goioc/di - Spring-inspired Dependency Injection Container.
- GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language.
- google/wire - Automated Initialization in Go.
- HnH/di - DI container library that is focused on clean API and flexibility.
- kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization.
- linker - A reflection based dependency injection and inversion of control library with components lifecycle support.
- nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup.
- wire - Strict Runtime Dependency Injection for Golang.
-
Project Layout
- ardanlabs/service - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications.
- cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices.
- go-module - Template for a typical module written on Go.
- go-sample - A sample layout for Go application projects with the real code.
- go-starter - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers.
- go-todo-backend - Go Todo Backend example using modular project layout for product microservice.
- gobase - A simple skeleton for golang application with basic setup for real golang application.
- golang-standards/project-layout - 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 [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful.
- golang-templates/seed - Go application GitHub repository template.
- insidieux/inizio - Golang project layout generator with plugins.
- modern-go-application - Go application boilerplate and example applying modern practices.
- pagoda - Rapid, easy full-stack web development starter kit built in Go.
- scaffold - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented.
- wangyoucao577/go-project-layout - Set of practices and discussions on how to structure Go project layout.
-
Strings
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
- caps - A case conversion library.
- go-formatter - Implements **replacement fields** surrounded by curly braces `{}` format strings.
- gobeam/Stringy - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc.
- strutil - String utilities.
- sttr - cross-platform, cli app to perform various operations on string.
- xstrings - Collection of useful string functions ported from other languages.
-
Uncategorized
- anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.
- antch - A fast, powerful and extensible web crawling & scraping framework.
- archiver - Library and command for making and extracting .zip and .tar.gz archives.
- autoflags - Go package to automatically define command line flags from struct fields.
- avgRating - Calculate average score and rating based on Wilson Score Equation.
- banner - Add beautiful banners into your Go applications.
- base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha.
- basexx - Convert to, from, and between digit strings in various number bases.
- battery - Cross-platform, normalized battery information library.
- bitio - Highly optimized bit-level Reader and Writer for Go.
- browscap_go - GoLang Library for [Browser Capabilities Project](https://browscap.org/).
- captcha - Package captcha provides an easy to use, unopinionated API for captcha generation.
- common - A library for server framework.
- conv - Package conv provides fast and intuitive conversions across Go types.
- datacounter - Go counters for readers/writer/http.ResponseWriter.
- faker - Fake data generator.
- faker - Random fake data and struct generator for Go.
- ffmt - Beautify data display for Humans.
- gatus - Automated service health dashboard.
- go-commandbus - A slight and pluggable command-bus for Go.
- go-commons-pool - Generic object pool for Golang.
- go-resiliency - Resiliency patterns for golang.
- go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives.
- gofakeit - Random data generator written in go.
- gommit - Analyze git commit messages to ensure they follow defined patterns.
- gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
- gosh - Provide Go Statistics Handler, Struct, Measure Method.
- gosms - Your own local SMS gateway in Go that can be used to send SMS.
- gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client.
- gountries - Package that exposes country and subdivision data.
- gtree - Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically.
- health - A simple and flexible health check library for Go.
- health - Easy to use, extensible health check library.
- healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services.
- hostutils - A golang library for packing and unpacking FQDNs list.
- indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58.
- lk - A simple licensing library for golang.
- llvm - Library for interacting with LLVM IR in pure Go.
- metrics - Library for metrics instrumentation and Prometheus exposition.
- morse - Library to convert to and from morse code.
- numa - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code.
- openapi - OpenAPI 3.x parser.
- pdfgen - HTTP service to generate PDF from Json requests.
- persian - Some utilities for Persian language in go.
- sandid - Every grain of sand on earth has its own ID.
- shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell.
- shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
- shoutrrr - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others.
- sitemap-format - A simple sitemap generator, with a little syntactic sugar.
- stateless - A fluent library for creating state machines.
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
- turtle - Emojis for Go.
- url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support.
- varint - A faster varying length integer encoder/decoder than the one provided in the standard library.
- xdg - FreeDesktop.org (xdg) Specs implemented in Go.
- xkg - X Keyboard Grabber.
- xz - Pure golang package for reading and writing xz-compressed files.
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- VarHandler - Generate boilerplate http input and output handling.
-
-
Natural Language Processing
-
Language Detection
- detectlanguage - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection.
- getlang - Fast natural language detection package.
- guesslanguage - Functions to determine the natural language of a unicode text.
- whatlanggo - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc).
-
Morphological Analyzers
- go-stem - Implementation of the porter stemming algorithm.
- go2vec - Reader and utility functions for word2vec embeddings.
- golibstemmer - Go bindings for the snowball libstemmer library including porter 2.
- gosentiwordnet - Sentiment analyzer using sentiwordnet lexicon in Go.
- govader - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment).
- govader-backend - Microservice implementation of [GoVader](https://github.com/jonreiter/govader).
- kagome - JP morphological analyzer written in pure Go.
- libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.
- nlp - Extract values from strings and fill your structs with nlp.
- nlp - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis).
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm.
- porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm.
- porter2 - Really fast Porter 2 stemmer.
- RAKE.go - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE).
- snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/).
- spaGO - Self-contained Machine Learning and Natural Language Processing library in Go.
- spelling-corrector - A spelling corrector for the Spanish language or create your own.
-
Slugifiers
- go-slugify - Make pretty slug with multiple languages support.
- slug - URL-friendly slugify with multiple languages support.
- Slugify - Go slugify application that handles string.
-
Tokenizers
- gojieba - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm.
- gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)
- gse - Go efficient text segmentation; support english, chinese, japanese and other.
- MMSEGO - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm.
- prose - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only.
- segment - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/)
- sentences - Sentence tokenizer: converts text into a list of sentences.
- shamoji - The shamoji is word filtering package written in Go.
- stemmer - Stemmer packages for Go programming language. Includes English and German stemmers.
- textcat - Go package for n-gram based text categorization, with support for utf-8 and raw text.
-
Translation
- go-i18n - Package and an accompanying tool to work with localized text.
- go-localize - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings.
- go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer.
- go-pinyin - CN Hanzi to Hanyu Pinyin converter.
- gotext - GNU gettext utilities for Go.
- icu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1.
- iuliia-go - Transliterate Cyrillic → Latin in every possible way.
- spreak - Flexible translation and humanization library for Go, based on the concepts behind gettext.
- t - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template.
-
Transliteration
- enca - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings.
- go-unidecode - ASCII transliterations of Unicode text.
- gounidecode - Unicode transliterator (also known as unidecode) for Go.
- transliterator - Provides one-way string transliteration with supporting of language-specific transliteration rules.
-
-
Networking
-
Transliteration
- arp - Package arp implements the ARP protocol, as described in RFC 826.
- buffstreams - Streaming protocolbuffer data over TCP made easy.
- canopus - CoAP Client/Server implementation (RFC 7252).
- cidranger - Fast IP to CIDR lookup for Go.
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
- dns - Go library for working with DNS.
- dnsmonster - Passive DNS Capture/Monitoring Framework.
- easytcp - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
- ether - Cross-platform Go package for sending and receiving ethernet frames.
- ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
- fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
- fortio - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC.
- ftp - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959).
- ftpserverlib - Fully featured FTP server library.
- fullproxy - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols.
- gaio - High performance async-io networking for Golang in proactor mode.
- gev - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode.
- gldap - gldap provides an ldap server implementation and you provide handlers for its ldap operations.
- gmqtt - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1.
- gnet - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.
- gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols.
- go-getter - Go library for downloading files or directories from various sources using a URL.
- go-powerdns - PowerDNS API bindings for Golang.
- go-sse - Go client and server implementation of HTML server-sent events.
- go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
- gobgp - BGP implemented in the Go Programming Language.
- golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.
- gopacket - Go library for packet processing with libpcap bindings.
- gopcap - Go wrapper for libpcap.
- goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
- gotcp - Go package for quickly writing tcp applications.
- grab - Go package for managing file downloads.
- graval - Experimental FTP server framework.
- gws - High-Performance WebSocket Server & Client With AsyncIO Supporting .
- HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
- httpproxy - HTTP proxy handler and dialer.
- iplib - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html)
- jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
- kcp-go - KCP - Fast and Reliable ARQ Protocol.
- kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
- lhttp - Powerful websocket framework, build your IM server more easily.
- linkio - Network link speed simulation for Reader/Writer interfaces.
- llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.
- mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
- nbio - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use.
- netpoll - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.
- packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.
- panoptes-stream - A cloud native distributed streaming network telemetry (gNMI, Juniper JTI and Cisco MDT).
- peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast.
- portproxy - Simple TCP proxy which adds CORS support to API's which don't support it.
- publicip - Package publicip returns your public facing IPv4 address (internet egress).
- quic-go - An implementation of the QUIC protocol in pure Go.
- raw - Package raw enables reading and writing data at the device driver level for a network interface.
- sftp - Package sftp implements the SSH File Transfer Protocol as described in <https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt>.
- ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
- sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance.
- tcp_server - Go library for building tcp servers faster.
- tspool - A TCP Library use worker pool to improve performance and protect your server.
- utp - Go uTP micro transport protocol implementation.
- vssh - Go library for building network and server automation over SSH protocol.
- water - Simple TUN/TAP library.
- winrm - Go WinRM client to remotely execute commands on Windows machines.
- xtcp - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol.
- gosnmp - Native Go library for performing SNMP actions.
- NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
- stun - Go implementation of RFC 5389 STUN protocol.
- webrtc - A pure Go implementation of the WebRTC API.
-
HTTP Clients
- gentleman - Full-featured plugin-driven HTTP client library.
- go-cleanhttp - Get easily stdlib HTTP client, which does not share any state with other clients.
- go-http-client - Make http calls simply and easily.
- go-otelroundtripper - Go http.RoundTripper that emits open telemetry metrics for HTTP requests.
- go-req - Declarative golang HTTP client.
- go-retryablehttp - Retryable HTTP client in Go.
- go-zoox/fetch - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.
- grequests - A Go "clone" of the great and famous Requests library.
- httpretry - Enriches the default go HTTP client with retry functionality.
- pester - Go HTTP client calls with retries, backoff, and concurrency.
- req - Simple Go HTTP client with Black Magic (Less code and More efficiency).
- request - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency.
- resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.
- rq - A nicer interface for golang stdlib HTTP client.
- sling - Sling is a Go HTTP client library for creating and sending API requests.
- heimdall - An enhanced http client with retry and hystrix capabilities.
- requests - 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.
-
-
OpenGL
-
HTTP Clients
- gl - Go bindings for OpenGL (generated via glow).
- glfw - Go bindings for GLFW 3.
- go-glmatrix - Go port of [glMatrix](https://glmatrix.net/) library.
- goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android).
- goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events.
- mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.
-
-
ORM
-
HTTP Clients
- bun - SQL-first Golang ORM. Successor of go-pg.
- cacheme - Schema based, typed Redis caching/memoize framework for Go.
- ent - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data.
- go-firestorm - A simple ORM for Google/Firebase Cloud Firestore.
- go-sql - A easy ORM for mysql.
- go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM.
- go-store - Simple and fast Redis backed key-value store library for Go.
- golobby/orm - Simple, fast, type-safe, generic orm for developer happiness.
- GORM - The fantastic ORM library for Golang, aims to be developer friendly.
- gormt - Mysql database to golang gorm struct.
- gorp - Go Relational Persistence, ORM-ish library for Go.
- grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).
- lore - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
- marlow - Generated ORM from project structs for compile time safety assurances.
- pop/soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
- Prisma - Prisma Client Go, Typesafe database access for Go.
- reform - Better ORM for Go, based on non-empty interfaces and code generation.
- rel - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API.
- SQLBoiler - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.
- upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.
- XORM - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle).
- Zoom - Blazing-fast datastore and querying engine built on Redis.
-
-
Package Management
-
HTTP Clients
- dep - Go dependency tool.
- glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.
- godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies.
- gom - Go Manager - bundle for go.
- gop - Build and manage your Go applications out of GOPATH.
- gopm - Go Package Manager.
- govendor - Go Package Manager. Go vendor tool that works with the standard vendor file.
- gpm - Barebones dependency manager for Go.
- gup - Update binaries installed by "go install".
- johnny-deps - Minimal dependency version using Git.
- modgv - Converts 'go mod graph' output into Graphviz's DOT language.
- mvn-golang - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure.
- VenGO - create and manage exportable isolated go virtual environments.
- goop - Simple dependency manager for Go (golang), inspired by Bundler.
- nut - Vendor Go dependencies.
-
-
Performance
-
HTTP Clients
- go-instrument - Automatically add spans to all methods and functions.
- jaeger - A distributed tracing system.
- pixie - No instrumentation tracing for Golang applications via eBPF.
- profile - Simple profiling support package for Go.
- statsviz - Live visualization of your Go application runtime statistics.
- tracer - Simple, lightweight tracing.
-
-
Query Language
-
HTTP Clients
- api-fu - Comprehensive GraphQL implementation.
- dasel - 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.
- gojsonq - A simple Go package to Query over JSON Data.
- goven - A drop-in query language for any database schema.
- gqlgen - go generate based graphql server library.
- graphql - graphql parser + utilities.
- graphql - GraphQL server with a focus on ease of use.
- graphql-go - Implementation of GraphQL for Go.
- gws - Apollos' "GraphQL over Websocket" client and server implementation.
- jsonpath - A query library for retrieving part of JSON based on JSONPath syntax.
- jsonql - JSON query expression library in Golang.
- jsonslice - Jsonpath queries with advanced filters.
- rql - Resource Query Language for REST API.
- rqp - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query.
- straf - Easily Convert Golang structs to GraphQL objects.
-
-
Resource Embedding
-
HTTP Clients
- debme - Create an `embed.FS` from an existing `embed.FS` subdirectory.
- fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use.
- go-resources - Unfancy resources embedding with Go.
- go.rice - go.rice is a Go package that makes working with resources such as HTML, JS, CSS, images, and templates very easy.
- mule - Embed external resources like images, movies ... into Go source code to create single file binaries using `go generate`. Focused on simplicity.
- packr - The simple and easy way to embed static files into Go binaries.
- rebed - Recreate folder structures and files from Go 1.16's `embed.FS` type
- statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
- statik - Embeds static files into a Go executable.
- templify - Embed external template files into Go code to create single file binaries.
- vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
- esc - Embeds files into Go programs and provides http.FileSystem interfaces to them.
-
-
Science and Data Analysis
-
HTTP Clients
- assocentity - Package assocentity returns the average distance from words to a given entity.
- bradleyterry - Provides a Bradley-Terry Model for pairwise comparisons.
- calendarheatmap - Calendar heatmap in plain Go inspired by Github contribution activity.
- chart - Simple Chart Plotting library for Go. Supports many graphs types.
- dataframe-go - Dataframes for machine-learning and statistics (similar to pandas).
- decimal - Package decimal implements arbitrary-precision decimal floating-point arithmetic.
- evaler - Simple floating point arithmetic expression evaluator.
- ewma - Exponentially-weighted moving averages.
- geom - 2D geometry for golang.
- go-dsp - Digital Signal Processing for Go.
- go-estimate - State estimation and filtering algorithms in Go.
- go-gt - Graph theory algorithms written in "Go" language.
- godesim - Extended/multivariable ODE solver framework for event-based simulations with simple API.
- goent - GO Implementation of Entropy Measures.
- gograph - A golang generic graph library that provides mathematical graph-theory and algorithms.
- gohistogram - Approximate histograms for data streams.
- gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more.
- gonum/plot - gonum/plot provides an API for building and drawing plots in Go.
- goraph - Pure Go graph theory library(data structure, algorithm visualization).
- gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
- GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions.
- graph - Library of basic graph algorithms.
- jsonl-graph - Tool to manipulate JSONL graphs with graphviz support.
- ode - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.
- orb - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support.
- pagerank - Weighted PageRank algorithm implemented in Go.
- piecewiselinear - Tiny linear interpolation library.
- PiHex - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi.
- rootfinding - root-finding algorithms library for finding roots of quadratic functions.
- sparse - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries.
- stats - Statistics package with common functions missing from the Golang standard library.
- streamtools - general purpose, graphical tool for dealing with streams of data.
- TextRank - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support.
- triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs.
-
-
Security
-
HTTP Clients
- acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
- acra - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system.
- age - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
- argon2-hashing - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package.
- argon2pw - Argon2 password hash generation with constant-time password comparison.
- BadActor - In-memory, application-driven jailer built in the spirit of fail2ban.
- booster - Fast initramfs generator with full-disk encryption support.
- Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras.
- certificates - An opinionated tool for generating tls certificates.
- CertMagic - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal.
- Coraza - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library.
- dongle - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption.
- firewalld-rest - A rest application to dynamically update firewalld rules on a linux server.
- go-generate-password - Password generator that can be used on the cli or as a library.
- go-htpasswd - Apache htpasswd Parser for Go.
- go-yara - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)".
- goArgonPass - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations.
- goSecretBoxPassword - A probably paranoid package for securely hashing and encrypting passwords.
- Interpol - Rule-based data generator for fuzzing and penetration testing.
- lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt).
- memguard - A pure Go library for handling sensitive values in memory.
- nacl - Go implementation of the NaCL set of API's.
- optimus-go - ID hashing and Obfuscation using Knuth's Algorithm.
- passlib - Futureproof password hashing library.
- secret - Prevent your secrets from leaking into logs, std\* etc.
- secure - HTTP middleware for Go that facilitates some quick security wins.
- secureio - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519.
- simple-scrypt - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
- ssh-vault - encrypt/decrypt using ssh keys.
- sslmgr - SSL certificates made easy with a high level wrapper around acme/autocert.
- themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
- go-password-validator - Password validator based on raw cryptographic entropy values.
- teler-waf - 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.
-
-
Serialization
-
HTTP Clients
- asn1 - Asn.1 BER and DER encoding library for golang.
- bambam - generator for Cap'n Proto schemas from go.
- binstruct - Golang binary decoder for mapping data into the structure.
- cbor - Small, safe, and easy CBOR encoding and decoding library.
- colfer - Code generation for the Colfer binary format.
- csvutil - High Performance, idiomatic CSV record encoding and decoding to native Go structures.
- elastic - Convert slices, maps or any other unknown value across different types at run-time, no matter what.
- fixedwidth - Fixed-width text formatting (UTF-8 supported).
- fwencoder - Fixed width file parser (encoding and decoding library) for Go.
- go-capnproto - Cap'n Proto library and parser for go.
- go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support.
- go-lctree - Provides a CLI and primitives to serialize and deserialize [LeetCode binary trees](https://support.leetcode.com/hc/en-us/articles/360011883654-What-does-1-null-2-3-mean-in-binary-tree-representation).
- gogoprotobuf - Protocol Buffers for Go with Gadgets.
- goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers.
- jsoniter - High-performance 100% compatible drop-in replacement of "encoding/json".
- mapstructure - Go library for decoding generic map values into native Go structures.
- php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions.
- pletter - A standard way to wrap a proto message for message brokers.
- structomap - Library to easily and dynamically generate maps from static structures.
- unitpacking - Library to pack unit vectors into as fewest bytes as possible.
- bel - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC.
-
-
Server Applications
-
HTTP Clients
- algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
- Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use.
- cortex-tenant - Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels.
- devd - Local webserver for developers.
- discovery - A registry for resilient mid-tier load balancing and failover.
- dudeldu - A simple SHOUTcast server.
- dummy - Run mock server based off an API contract with one command.
- Easegress - A cloud native high availability/performance traffic orchestration system with observability and extensibility.
- etcd - Highly-available key value store for shared configuration and service discovery.
- Euterpe - Self-hosted music streaming server with built-in web UI and REST API.
- Fider - Fider is an open platform to collect and organize customer feedback.
- Flagr - Flagr is an open-source feature flagging and A/B testing service.
- flipt - A self contained feature flag solution written in Go and Vue.js
- go-feature-flag - A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it.
- go-proxy-cache - Simple Reverse Proxy with Caching, written in Go, using Redis.
- jackal - An XMPP server written in Go.
- protoxy - A proxy server that converts JSON request bodies to Protocol Buffers.
- psql-streamer - Stream database events from PostgreSQL to Kafka.
- lets-proxy2 - Reverse proxy for handle https with issue certificates in fly from lets-encrypt.
- minio - Minio is a distributed object storage server.
- Moxy - Moxy is a simple mocker and proxy application server, you can create mock endpoints as well as proxy requests in case no mock exists for the endpoint.
- nginx-prometheus - Nginx log parser and exporter to Prometheus.
- riemann-relay - Relay to load-balance Riemann events and/or convert them to Carbon.
- RoadRunner - High-performance PHP application server, load-balancer and process manager.
- SFTPGo - 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.
- simple-jwt-provider - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management.
- Wish - Make SSH apps, just like that!
- consul - Consul is a tool for service discovery, monitoring and configuration.
- nsq - A realtime distributed messaging platform.
- Trickster - HTTP reverse proxy cache and time series accelerator.
-
-
Stream Processing
-
HTTP Clients
- go-streams - Go stream processing library.
- goio - An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2.
- machine - Go library for writing and generating stream workers with built in metrics and traceability.
- stream - Go Stream, like Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...
-
-
Template Engines
-
HTTP Clients
- ego - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.
- extemplate - Tiny wrapper around html/template to allow for easy file-based template inheritance.
- fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/).
- gospin - Article spinning and spintax/spinning syntax engine, useful for A/B, testing pieces of text/articles and creating more natural conversations.
- got - A Go code generator inspired by Hero and Fasttemplate. Has include files, custom tag definitions, injected Go code, language translation, and more.
- goview - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application.
- jet - Jet template engine.
- liquid - Go implementation of Shopify Liquid templates.
- maroto - A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.
- pongo2 - Django-like template-engine for Go.
- quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.
- raymond - Complete handlebars implementation in Go.
- Razor - Razor view engine for Golang.
- Soy - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/).
- sprig - Useful template functions for Go templates.
- tbd - A really simple way to create text templates with placeholders - exposes extra builtin Git repo metadata.
-
-
Testing
-
HTTP Clients
- assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
- badio - Extensions to Go's `testing/iotest` package.
- baloo - Expressive and versatile end-to-end HTTP API testing made easy.
- biff - Bifurcation testing framework, BDD compatible.
- charlatan - Tool to generate fake interface implementations for tests.
- covergates - Self-hosted code coverage report review and management service.
- cupaloy - Simple snapshot testing addon for your test framework.
- dbcleaner - Clean database for testing purpose, inspired by `database_cleaner` in Ruby.
- dsunit - Datastore testing for SQL, NoSQL, structured files.
- embedded-postgres - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test.
- endly - Declarative end to end functional testing.
- fixenv - Fixture manage engine, inspired by pytest fixtures.
- fluentassert - Extensible, type-safe, fluent assertion Go library.
- flute - HTTP client testing framework.
- frisby - REST API testing framework.
- gherkingen - BDD boilerplate generator and framework.
- ginkgo - BDD Testing Framework for Go.
- gnomock - integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks.
- go-carpet - Tool for viewing test coverage in terminal.
- go-cmp - Package for comparing Go values in tests.
- go-hit - Hit is an http integration test framework written in golang.
- go-mutesting - Mutation testing for Go source code.
- go-mysql-test-container - Golang MySQL testcontainer to help with MySQL integration testing.
- gocheck - More advanced testing framework alternative to gotest.
- be - The minimalist generic test assertion library.
- commander - Tool for testing cli applications on windows, linux and osx.
-
-
Websites
-
Reddit
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
- awesome-awesomeness - List of other amazingly awesome lists.
- Go Community on Hashnode - Community of Gophers on Hashnode.
- Go Projects - List of projects on the Go community wiki.
- Go Proverbs - Go Proverbs by Rob Pike.
- go.dev - A hub for Go developers.
- Golang Weekly - Each monday projects, tutorials and articles about Go.
- Gophercises - Free coding exercises for budding gophers.
- Learn Go Programming - Learn Go concepts with illustrations.
- Made with Golang
- r/Golang - News about Go.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- TutorialEdge - Golang
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- gowalker.org - Go Project API documentation.
- Learn Go Programming - Learn Go concepts with illustrations.
- Golang Resources - A curation of the best articles, exercises, talks and videos to learn Go.
- Code with Mukesh - Software Engineer and Blogs @ codewithmukesh.com.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
-
Tutorials
- 50 Shades of Go - Traps, Gotchas, and Common Mistakes for New Golang Devs.
- A Comprehensive Guide to Structured Logging in Go - Delve deep into the world of structured logging in Go with a specific focus on recently accepted slog proposal which aims to bring high performance structured logging with levels to the standard library.
- A Guide to Golang E-Commerce - Building a Golang site for e-commerce (demo included).
- Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL - We’ll write an API with the help of the powerful Gorilla Mux.
- Building Go Web Applications and Microservices Using Gin - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
- Caching Slow Database Queries - How to cache slow database queries.
- Canceling MySQL - How to cancel MySQL queries.
- CodeCrafters Golang Track - Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go database/sql tutorial - Introduction to database/sql.
- Go Language Tutorial - Learn Go language Tutorial.
- Go Tutorial - Learn Go programming.
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golangbot - Tutorials to get started with programming in Go.
- GopherCoding - Collection of code snippets and tutorials to help tackle every day issues.
- GopherSnippets - Code snippets with tests and testable examples for the Go programming language.
- Gosamples - Collection of code snippets that let you solve everyday code problems.
- Hackr.io - Learn Go from the best online golang tutorials submitted & voted by the golang programming community.
- How to Benchmark: dbq vs sqlx vs GORM - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM.
- How To Deploy a Go Web Application with Docker - Learn how to use Docker for Go development and how to build production Docker images.
- How to Use Godog for Behavior-driven Development in Go - Get started with Godog — a Behavior-driven development framework for building and testing Go applications.
- Learning Go by examples - Series of articles in order to learn Golang language by concrete applications as example.
- Programming with Google Go - Coursera Specialization to learn about Go from scratch.
- Saving a Third of Our Memory by Re-ordering Go Struct Fields - How inefficient field ordering in Go structs.
- Scaling Go Applications - Everything about building, deploying and scaling Go applications in production.
-
Guided Learning
- The Go Developer Roadmap - A visual roadmap that new Go developers can follow through to help them learn Go.
- The Go Learning Path - A guided learning path containing a mix of free and premium resources.
-
-
Text Processing
-
Formatters
- bytes - Formats and parses numeric byte values (10K, 2M, 3G, etc.).
-
-
E-Books
-
E-books for purchase
- Black Hat Go - Go programming for hackers and pentesters.
- Continuous Delivery in Go - 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.
- Creative DIY Microcontroller Project With TinyGo and WebAssembly - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly.
- Effective Go: Elegant, efficient, and testable code - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code.
- For the Love of Go - An introductory book for Go beginners.
- Go Faster - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster.
- Know Go: Generics - A guide to understanding and using generics in Go.
- The Power of Go: Tests - A guide to testing in Go.
- The Power of Go: Tools - A guide to writing command-line tools in Go.
-
Free e-books
- A Go Developer's Notebook
- Build Web Application with Golang
- Building Web Apps With Go
- GoBooks - A curated list of Go books.
- How To Code in Go eBook - A 600 page introduction to Go aimed at first time developers.
- Network Programming With Go
- Practical Go Lessons
- The Go Programming Language
-
-
Meetups
-
Free e-books
- Basel Go Meetup
- Belfast Gophers
- Belgrade Golang Meetup
- Berlin Golang
- Brisbane Gophers
- Canberra Gophers
- Go Language NYC
- Go London User Group
- Go Remote Meetup
- Go Toronto
- Go User Group Atlanta
- GoBandung
- GoBridge, San Francisco, CA
- GoCracow - Krakow, Poland
- GoJakarta
- Golang Amsterdam
- Golang Argentina
- Golang Athens
- Golang Baltimore, MD
- Golang Bangalore
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Bulgaria
- Golang Cardiff, UK
- Golang Copenhagen
- Golang Curitiba - Brazil
- Golang DC, Arlington, VA
- Golang Dorset, UK
- Golang Estonia
- Golang Gurgaon, India
- Golang Hamburg - Germany
- Golang Israel
- Golang Kathmandu
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang North East
- Golang Paris
- Golang Poland
- Golang Pune
- Golang Rotterdam
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Thessaloniki
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
- Golang Москва
- GoSF - San Francisco, CA
-
-
Style Guides
-
Free e-books
-
-
Social Media
-
Twitter
-
Reddit
-
Categories
Miscellaneous
95
Networking
84
Websites
63
Meetups
59
Messaging
54
Natural Language Processing
47
Machine Learning
38
Science and Data Analysis
34
Security
33
Server Applications
30
Testing
26
ORM
22
Serialization
21
E-Books
17
Template Engines
16
Query Language
15
Package Management
15
Resource Embedding
12
Style Guides
9
Microsoft Office
7
Social Media
7
Performance
6
OpenGL
6
Stream Processing
4
Database
2
Logging
1
Text Processing
1
Goroutines
1
Sub Categories
HTTP Clients
257
Search and Analytic Databases
95
Free e-books
76
Transliteration
71
Uncategorized
59
Reddit
37
Tutorials
25
Morphological Analyzers
17
Dependency Injection
15
Project Layout
14
Tokenizers
10
E-books for purchase
9
Translation
9
Strings
7
Microsoft Excel
6
Twitter
6
Language Detection
4
Slugifiers
3
Guided Learning
2
Caches
2
Formatters
1
Keywords
golang
268
go
239
golang-library
23
machine-learning
21
orm
20
http
18
testing
15
dependency-injection
14
mysql
13
database
13
docker
12
postgresql
12
sql
12
security
11
json
11
redis
11
golang-package
11
pubsub
9
cli
9
library
8
rabbitmq
8
http-client
8
nlp
8
sqlite
8
websocket
8
neural-network
8
event-driven
7
framework
7
kubernetes
7
server
7
xlsx
6
rest-api
6
cryptography
6
streaming
6
graphql
6
message-bus
6
kafka
6
template
6
template-engine
6
messaging
6
statistics
6
protobuf
6
fast
6
linux
5
natural-language-processing
5
tokenizer
5
go-library
5
amqp
5
notifications
5
apns
5