Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

    • Caches

      • scache - LRU SCache with in mem, mmap features
      • fastcache - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead.
  • Goroutines

      • ants - A high-performance and low-cost goroutine pool in Go.
  • Logging

      • zerolog - Zero-allocation JSON logger.
  • Machine Learning

      • 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

      • 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

      • 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

  • Text Processing

    • Formatters

      • bytes - Formats and parses numeric byte values (10K, 2M, 3G, etc.).
  • E-Books

  • Meetups

  • Style Guides

  • Social Media