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

awesome-go-plus

A curated list of awesome Go frameworks, libraries and software
https://github.com/jayecc/awesome-go-plus

Last synced: 7 days ago
JSON representation

  • Logging

      • noodlog - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. ![stars](https://img.shields.io/badge/stars-43-blue)
      • onelog - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. ![stars](https://img.shields.io/badge/stars-413-blue)
      • ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail). ![stars](https://img.shields.io/badge/stars-122-blue)
      • phuslu/log - High performance structured logging. ![stars](https://img.shields.io/badge/stars-743-blue)
      • pp - Colored pretty printer for Go language. ![stars](https://img.shields.io/badge/stars-1927-blue)
      • rollingwriter - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. ![stars](https://img.shields.io/badge/stars-298-blue)
      • seelog - Logging functionality with flexible dispatching, filtering, and formatting. ![stars](https://img.shields.io/badge/stars-1639-blue)
      • sentry-go - Sentry SDK for Go. Helps monitor and track errors with real-time alerts and performance monitoring. ![stars](https://img.shields.io/badge/stars-959-blue)
      • slf4g - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. ![stars](https://img.shields.io/badge/stars-4-blue)
      • slog - Lightweight, configurable, extensible logger for Go. ![stars](https://img.shields.io/badge/stars-443-blue)
      • slog-formatter - Common formatters for slog and helpers to build your own. ![stars](https://img.shields.io/badge/stars-166-blue)
      • slog-multi - Chain of slog.Handler (pipeline, fanout...). ![stars](https://img.shields.io/badge/stars-464-blue)
      • slogor - A colorful slog handler.
      • spew - Implements a deep pretty printer for Go data structures to aid in debugging. ![stars](https://img.shields.io/badge/stars-6196-blue)
      • sqldb-logger - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. ![stars](https://img.shields.io/badge/stars-368-blue)
      • stdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. ![stars](https://img.shields.io/badge/stars-48-blue)
      • structy/log - A simple to use log system, minimalist but with features for debugging and differentiation of messages. ![stars](https://img.shields.io/badge/stars-5-blue)
      • tail - Go package striving to emulate the features of the BSD tail program. ![stars](https://img.shields.io/badge/stars-2747-blue)
      • tint - A slog.Handler that writes tinted logs. ![stars](https://img.shields.io/badge/stars-922-blue)
      • xlog - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format. ![stars](https://img.shields.io/badge/stars-8-blue)
      • xlog - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. ![stars](https://img.shields.io/badge/stars-138-blue)
      • xylog - Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax. ![stars](https://img.shields.io/badge/stars-17-blue)
      • yell - Yet another minimalistic logging library. ![stars](https://img.shields.io/badge/stars-1-blue)
      • zap - Fast, structured, leveled logging in Go. ![stars](https://img.shields.io/badge/stars-22849-blue)
      • zax - Integrate Context with Zap logger, which leads to more flexibility in Go logging. ![stars](https://img.shields.io/badge/stars-27-blue)
      • zerolog - Zero-allocation JSON logger. ![stars](https://img.shields.io/badge/stars-11236-blue)
      • zkits-logger - A powerful zero-dependency JSON logger. ![stars](https://img.shields.io/badge/stars-28-blue)
      • zl - High Developer Experience, zap based logger. It offers rich functionality but is easy to configure. ![stars](https://img.shields.io/badge/stars-6-blue)
  • Machine Learning

      • bayesian - Naive Bayesian Classification for Golang. ![stars](https://img.shields.io/badge/stars-805-blue)
      • catboost-cgo - Fast, scalable, high performance Gradient Boosting on Decision Trees library. Golang using Cgo for blazing fast inference CatBoost Model. ![stars](https://img.shields.io/badge/stars-13-blue)
      • CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. ![stars](https://img.shields.io/badge/stars-743-blue)
      • ddt - Dynamic decision tree, create trees defining customizable rules. ![stars](https://img.shields.io/badge/stars-39-blue)
      • eaopt - An evolutionary optimization library. ![stars](https://img.shields.io/badge/stars-897-blue)
      • evoli - Genetic Algorithm and Particle Swarm Optimization library. ![stars](https://img.shields.io/badge/stars-33-blue)
      • fonet - A Deep Neural Network library written in Go. ![stars](https://img.shields.io/badge/stars-85-blue)
      • go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms. ![stars](https://img.shields.io/badge/stars-43-blue)
      • go-deep - A feature-rich neural network library in Go. ![stars](https://img.shields.io/badge/stars-544-blue)
      • go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library. ![stars](https://img.shields.io/badge/stars-115-blue)
      • go-featureprocessing - Fast and convenient feature processing for low latency machine learning in Go. ![stars](https://img.shields.io/badge/stars-120-blue)
      • go-galib - Genetic Algorithms library written in Go / golang. ![stars](https://img.shields.io/badge/stars-199-blue)
      • go-pr - Pattern recognition package in Go lang. ![stars](https://img.shields.io/badge/stars-66-blue)
      • gobrain - Neural Networks written in go. ![stars](https://img.shields.io/badge/stars-565-blue)
      • godist - Various probability distributions, and associated methods. ![stars](https://img.shields.io/badge/stars-42-blue)
      • goga - Genetic algorithm library for Go. ![stars](https://img.shields.io/badge/stars-222-blue)
      • GoLearn - General Machine Learning library for Go. ![stars](https://img.shields.io/badge/stars-9374-blue)
      • golinear - liblinear bindings for Go. ![stars](https://img.shields.io/badge/stars-45-blue)
      • GoMind - A simplistic Neural Network Library in Go. ![stars](https://img.shields.io/badge/stars-95-blue)
      • goml - On-line Machine Learning in Go. ![stars](https://img.shields.io/badge/stars-1584-blue)
      • GoMLX - An accelerated Machine Learning framework for Go. ![stars](https://img.shields.io/badge/stars-723-blue)
      • gonet - Neural Network for Go. ![stars](https://img.shields.io/badge/stars-82-blue)
      • Goptuna - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. ![stars](https://img.shields.io/badge/stars-266-blue)
      • goRecommend - Recommendation Algorithms library written in Go. ![stars](https://img.shields.io/badge/stars-207-blue)
      • gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. ![stars](https://img.shields.io/badge/stars-5728-blue)
      • gorse - An offline recommender system backend based on collaborative filtering written in Go. ![stars](https://img.shields.io/badge/stars-8873-blue)
      • goscore - Go Scoring API for PMML. ![stars](https://img.shields.io/badge/stars-101-blue)
      • gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. ![stars](https://img.shields.io/badge/stars-2836-blue)
      • hugot - Huggingface transformer pipelines for golang with onnxruntime. ![stars](https://img.shields.io/badge/stars-384-blue)
      • libsvm - libsvm golang version derived work based on LIBSVM 3.14. ![stars](https://img.shields.io/badge/stars-73-blue)
      • 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. ![stars](https://img.shields.io/badge/stars-2872-blue)
      • neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation. ![stars](https://img.shields.io/badge/stars-70-blue)
      • ocrserver - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. ![stars](https://img.shields.io/badge/stars-727-blue)
      • onnx-go - Go Interface to Open Neural Network Exchange (ONNX). ![stars](https://img.shields.io/badge/stars-765-blue)
      • probab - Probability distribution functions. Bayesian inference. Written in pure Go. ![stars](https://img.shields.io/badge/stars-20-blue)
      • randomforest - Easy to use Random Forest library for Go. ![stars](https://img.shields.io/badge/stars-52-blue)
      • regommend - Recommendation & collaborative filtering engine. ![stars](https://img.shields.io/badge/stars-314-blue)
      • shield - Bayesian text classifier with flexible tokenizers and storage backends for Go. ![stars](https://img.shields.io/badge/stars-158-blue)
      • 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. ![stars](https://img.shields.io/badge/stars-2459-blue)
      • Varis - Golang Neural Network. ![stars](https://img.shields.io/badge/stars-54-blue)
  • Meetups

  • Messaging

      • ami - Go client to reliable queues based on Redis Cluster Streams. ![stars](https://img.shields.io/badge/stars-30-blue)
      • amqp - Go RabbitMQ Client Library. ![stars](https://img.shields.io/badge/stars-1723-blue)
      • APNs2 - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. ![stars](https://img.shields.io/badge/stars-3070-blue)
      • Asynq - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. ![stars](https://img.shields.io/badge/stars-10972-blue)
      • Beaver - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. ![stars](https://img.shields.io/badge/stars-1566-blue)
      • Bus - Minimalist message bus implementation for internal communication. ![stars](https://img.shields.io/badge/stars-345-blue)
      • Centrifugo - Real-time messaging (Websockets or SockJS) server in Go. ![stars](https://img.shields.io/badge/stars-8887-blue)
      • Chanify - A push notification server send message to your iOS devices. ![stars](https://img.shields.io/badge/stars-1297-blue)
      • Commander - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. ![stars](https://img.shields.io/badge/stars-67-blue)
      • Confluent Kafka Golang Client - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. ![stars](https://img.shields.io/badge/stars-4817-blue)
      • dbus - Native Go bindings for D-Bus. ![stars](https://img.shields.io/badge/stars-1041-blue)
      • drone-line - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI. ![stars](https://img.shields.io/badge/stars-80-blue)
      • emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. ![stars](https://img.shields.io/badge/stars-514-blue)
      • event - Implementation of the pattern observer. ![stars](https://img.shields.io/badge/stars-58-blue)
      • EventBus - The lightweight event bus with async compatibility. ![stars](https://img.shields.io/badge/stars-1850-blue)
      • gaurun-client - Gaurun Client written in Go. ![stars](https://img.shields.io/badge/stars-11-blue)
      • Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io). ![stars](https://img.shields.io/badge/stars-418-blue)
      • go-eventbus - Simple Event Bus package for Go. ![stars](https://img.shields.io/badge/stars-7-blue)
      • Go-MediatR - A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library. ![stars](https://img.shields.io/badge/stars-225-blue)
      • go-mq - RabbitMQ client with declarative configuration. ![stars](https://img.shields.io/badge/stars-90-blue)
      • go-notify - Native implementation of the freedesktop notification spec. ![stars](https://img.shields.io/badge/stars-71-blue)
      • go-nsq - the official Go package for NSQ. ![stars](https://img.shields.io/badge/stars-2621-blue)
      • go-res - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. ![stars](https://img.shields.io/badge/stars-65-blue)
      • go-socket.io - socket.io library for golang, a realtime application framework. ![stars](https://img.shields.io/badge/stars-5774-blue)
      • go-vitotrol - Client library to Viessmann Vitotrol web service. ![stars](https://img.shields.io/badge/stars-23-blue)
      • Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations. ![stars](https://img.shields.io/badge/stars-940-blue)
      • golongpoll - HTTP longpoll server library that makes web pub-sub simple. ![stars](https://img.shields.io/badge/stars-662-blue)
      • gopush-cluster - gopush-cluster is a go push server cluster. ![stars](https://img.shields.io/badge/stars-2077-blue)
      • gorush - Push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). ![stars](https://img.shields.io/badge/stars-8307-blue)
      • gosd - A library for scheduling when to dispatch a message to a channel. ![stars](https://img.shields.io/badge/stars-26-blue)
      • 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. ![stars](https://img.shields.io/badge/stars-160-blue)
      • hare - A user friendly library for sending messages and listening to TCP sockets. ![stars](https://img.shields.io/badge/stars-53-blue)
      • hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. ![stars](https://img.shields.io/badge/stars-146-blue)
      • hypermatch - A very fast and efficient Go library for matching events to a large set of rules ![stars](https://img.shields.io/badge/stars-26-blue)
      • jazz - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. ![stars](https://img.shields.io/badge/stars-18-blue)
      • machinery - Asynchronous task queue/job queue based on distributed message passing. ![stars](https://img.shields.io/badge/stars-7697-blue)
      • mangos - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. ![stars](https://img.shields.io/badge/stars-702-blue)
      • melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. ![stars](https://img.shields.io/badge/stars-3884-blue)
      • Mercure - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). ![stars](https://img.shields.io/badge/stars-4886-blue)
      • messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. ![stars](https://img.shields.io/badge/stars-274-blue)
      • NATS Go Client - Go client for the NATS ![stars](https://img.shields.io/badge/stars-5827-blue)
      • nsq-event-bus - A tiny wrapper around NSQ topic and channel. ![stars](https://img.shields.io/badge/stars-79-blue)
      • oplog - Generic oplog/replication system for REST APIs. ![stars](https://img.shields.io/badge/stars-110-blue)
      • pubsub - Simple pubsub package for go. ![stars](https://img.shields.io/badge/stars-433-blue)
      • Quamina - Fast pattern-matching for filtering messages and events. ![stars](https://img.shields.io/badge/stars-423-blue)
      • rabbitroutine - Lightweight library that handles RabbitMQ auto-reconnect and publishing retries. The library takes into account the need to re-declare entities in RabbitMQ after reconnection. ![stars](https://img.shields.io/badge/stars-111-blue)
      • rabbus - A tiny wrapper over amqp exchanges and queues. ![stars](https://img.shields.io/badge/stars-98-blue)
      • rabtap - RabbitMQ swiss army knife cli app. ![stars](https://img.shields.io/badge/stars-268-blue)
      • RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue. ![stars](https://img.shields.io/badge/stars-69-blue)
      • Ratus - Ratus is a RESTful asynchronous task queue server. ![stars](https://img.shields.io/badge/stars-119-blue)
      • redisqueue - redisqueue provides a producer and consumer of a queue that uses Redis streams. ![stars](https://img.shields.io/badge/stars-133-blue)
      • 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. ![stars](https://img.shields.io/badge/stars-23-blue)
      • sarama - Go library for Apache Kafka. ![stars](https://img.shields.io/badge/stars-11908-blue)
      • Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices. ![stars](https://img.shields.io/badge/stars-1547-blue)
      • 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. ![stars](https://img.shields.io/badge/stars-8271-blue)
      • 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). ![stars](https://img.shields.io/badge/stars-1203-blue)
  • Microsoft Office

    • Microsoft Excel

      • excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files. ![stars](https://img.shields.io/badge/stars-18934-blue)
      • exl - Excel binding to struct written in Go.(Only supports Go1.18+) ![stars](https://img.shields.io/badge/stars-32-blue)
      • go-excel - A simple and light reader to read a relate-db-like excel as a table. ![stars](https://img.shields.io/badge/stars-194-blue)
      • goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. ![stars](https://img.shields.io/badge/stars-21-blue)
      • xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. ![stars](https://img.shields.io/badge/stars-5949-blue)
      • xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. ![stars](https://img.shields.io/badge/stars-175-blue)
    • Microsoft Word

      • godocx - Library for reading and writing Microsoft Word (Docx) files. ![stars](https://img.shields.io/badge/stars-161-blue)
      • unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. ![stars](https://img.shields.io/badge/stars-4540-blue)
  • Miscellaneous

    • Dependency Injection

      • alice - Additive dependency injection container for Golang. ![stars](https://img.shields.io/badge/stars-50-blue)
      • autowire - Dependency injection using Generics and reflection. ![stars](https://img.shields.io/badge/stars-10-blue)
      • componego - A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests. ![stars](https://img.shields.io/badge/stars-26-blue)
      • cosban/di - A code generation based dependency injection wiring tool.
      • di - A dependency injection container for go programming language. ![stars](https://img.shields.io/badge/stars-235-blue)
      • dig - A reflection based dependency injection toolkit for Go. ![stars](https://img.shields.io/badge/stars-4101-blue)
      • dingo - A dependency injection toolkit for Go, based on Guice. ![stars](https://img.shields.io/badge/stars-183-blue)
      • do - A dependency injection framework based on Generics. ![stars](https://img.shields.io/badge/stars-2036-blue)
      • fx - A dependency injection based application framework for Go (built on top of dig). ![stars](https://img.shields.io/badge/stars-6363-blue)
      • gocontainer - Simple Dependency Injection Container. ![stars](https://img.shields.io/badge/stars-21-blue)
      • goioc/di - Spring-inspired Dependency Injection Container. ![stars](https://img.shields.io/badge/stars-364-blue)
      • GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. ![stars](https://img.shields.io/badge/stars-581-blue)
      • gontainer - A dependency injection service container for Go projects. ![stars](https://img.shields.io/badge/stars-43-blue)
      • gontainer/gontainer - A YAML-based Dependency Injection container for GO. It supports dependencies' scopes, and auto-detection of circular dependencies. Gontainer is concurrent-safe. ![stars](https://img.shields.io/badge/stars-16-blue)
      • google/wire - Automated Initialization in Go. ![stars](https://img.shields.io/badge/stars-13593-blue)
      • HnH/di - DI container library that is focused on clean API and flexibility. ![stars](https://img.shields.io/badge/stars-8-blue)
      • kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. ![stars](https://img.shields.io/badge/stars-10-blue)
      • kod - A generics based dependency injection framework for Go. ![stars](https://img.shields.io/badge/stars-183-blue)
      • linker - A reflection based dependency injection and inversion of control library with components lifecycle support. ![stars](https://img.shields.io/badge/stars-36-blue)
      • nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup. ![stars](https://img.shields.io/badge/stars-30-blue)
      • ore - Lightweight, generic & simple dependency injection (DI) container. ![stars](https://img.shields.io/badge/stars-20-blue)
      • wire - Strict Runtime Dependency Injection for Golang. ![stars](https://img.shields.io/badge/stars-38-blue)
      • boot-go - Component-based development with dependency injection using reflections for Go developers.
    • Project Layout

      • ardanlabs/service - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. ![stars](https://img.shields.io/badge/stars-3724-blue)
      • cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices. ![stars](https://img.shields.io/badge/stars-708-blue)