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: 6 days ago
JSON representation

  • Data Structures and Algorithms

    • Text Analysis

      • parsefields - Tools for parse JSON-like logs for collecting unique fields and events. ![stars](https://img.shields.io/badge/stars-7-blue)
      • ptrie - An implementation of prefix tree. ![stars](https://img.shields.io/badge/stars-42-blue)
      • trie - Trie implementation in Go. ![stars](https://img.shields.io/badge/stars-768-blue)
    • Trees

      • merkle - Space-efficient computation of Merkle root hashes and inclusion proofs. ![stars](https://img.shields.io/badge/stars-19-blue)
      • skiplist - Very fast Go Skiplist implementation. ![stars](https://img.shields.io/badge/stars-284-blue)
      • skiplist - Skiplist implementation in Go. ![stars](https://img.shields.io/badge/stars-84-blue)
      • treap - Persistent, fast ordered map using tree heaps. ![stars](https://img.shields.io/badge/stars-27-blue)
      • treemap - Generic key-sorted map using a red-black tree under the hood. ![stars](https://img.shields.io/badge/stars-63-blue)
      • hashsplit - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.
  • Date and Time

      • approx - A Duration extension supporting parsing/printing durations in days, weeks and years. ![stars](https://img.shields.io/badge/stars-13-blue)
      • carbon - A simple, semantic and developer-friendly time package for golang. ![stars](https://img.shields.io/badge/stars-5007-blue)
      • carbon - Simple Time extension with a lot of util methods, ported from PHP Carbon library. ![stars](https://img.shields.io/badge/stars-783-blue)
      • cronrange - Parses Cron-style time range expressions, checks if the given time is within any ranges. ![stars](https://img.shields.io/badge/stars-17-blue)
      • date - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day. ![stars](https://img.shields.io/badge/stars-137-blue)
      • dateparse - Parse date's without knowing format in advance. ![stars](https://img.shields.io/badge/stars-2074-blue)
      • durafmt - Time duration formatting library for Go. ![stars](https://img.shields.io/badge/stars-499-blue)
      • feiertage - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving... ![stars](https://img.shields.io/badge/stars-49-blue)
      • go-anytime - Parse dates/times like "next dec 22nd at 3pm" and ranges like "from today until next thursday" without knowing the format in advance. ![stars](https://img.shields.io/badge/stars-29-blue)
      • go-datebin - A simple datetime parse pkg. ![stars](https://img.shields.io/badge/stars-4-blue)
      • go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). ![stars](https://img.shields.io/badge/stars-220-blue)
      • go-str2duration - Convert string to duration. Support time.Duration returned string and more. ![stars](https://img.shields.io/badge/stars-112-blue)
      • go-sunrise - Calculate the sunrise and sunset times for a given location. ![stars](https://img.shields.io/badge/stars-163-blue)
      • go-week - An efficient package to work with ISO8601 week dates. ![stars](https://img.shields.io/badge/stars-10-blue)
      • gostradamus - A Go package for working with dates. ![stars](https://img.shields.io/badge/stars-207-blue)
      • iso8601 - Efficiently parse ISO8601 date-times without regex. ![stars](https://img.shields.io/badge/stars-151-blue)
      • kair - Date and Time - Golang Formatting Library. ![stars](https://img.shields.io/badge/stars-24-blue)
      • now - Now is a time toolkit for golang. ![stars](https://img.shields.io/badge/stars-4521-blue)
      • strftime - C99-compatible strftime formatter. ![stars](https://img.shields.io/badge/stars-13-blue)
      • timespan - For interacting with intervals of time, defined as a start time and a duration. ![stars](https://img.shields.io/badge/stars-83-blue)
      • timeutil - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. ![stars](https://img.shields.io/badge/stars-192-blue)
      • tuesday - Ruby-compatible Strftime function. ![stars](https://img.shields.io/badge/stars-12-blue)
  • Distributed Systems

      • arpc - More effective network communication, support two-way-calling, notify, broadcast. ![stars](https://img.shields.io/badge/stars-1025-blue)
      • bedrock - Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go. ![stars](https://img.shields.io/badge/stars-11-blue)
      • capillaries - distributed batch data processing framework. ![stars](https://img.shields.io/badge/stars-65-blue)
      • celeriac - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. ![stars](https://img.shields.io/badge/stars-72-blue)
      • committer - A distributed transactions management system (2PC/3PC implementation). ![stars](https://img.shields.io/badge/stars-35-blue)
      • consistent - Consistent hashing with bounded loads. ![stars](https://img.shields.io/badge/stars-729-blue)
      • consistenthash - Consistent hashing with configurable replicas. ![stars](https://img.shields.io/badge/stars-27-blue)
      • dht - BitTorrent Kademlia DHT implementation. ![stars](https://img.shields.io/badge/stars-328-blue)
      • digota - grpc ecommerce microservice. ![stars](https://img.shields.io/badge/stars-514-blue)
      • doublejump - A revamped Google's jump consistent hash. ![stars](https://img.shields.io/badge/stars-105-blue)
      • dragonboat - A feature complete and high performance multi-group Raft library in Go. ![stars](https://img.shields.io/badge/stars-5151-blue)
      • Dragonfly - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures. ![stars](https://img.shields.io/badge/stars-2504-blue)
      • drmaa - Job submission library for cluster schedulers based on the DRMAA standard. ![stars](https://img.shields.io/badge/stars-49-blue)
      • dynamolock - DynamoDB-backed distributed locking implementation.
      • dynatomic - A library for using DynamoDB as an atomic counter. ![stars](https://img.shields.io/badge/stars-17-blue)
      • emitter-io - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love. ![stars](https://img.shields.io/badge/stars-3912-blue)
      • evans - Evans: more expressive universal gRPC client. ![stars](https://img.shields.io/badge/stars-4377-blue)
      • failured - adaptive accrual failure detector for distributed systems. ![stars](https://img.shields.io/badge/stars-13-blue)
      • flowgraph - flow-based programming package. ![stars](https://img.shields.io/badge/stars-60-blue)
      • gleam - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed. ![stars](https://img.shields.io/badge/stars-3511-blue)
      • glow - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. ![stars](https://img.shields.io/badge/stars-3216-blue)
      • gmsec - A Go distributed systems development framework. ![stars](https://img.shields.io/badge/stars-25-blue)
      • go-doudou - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity. ![stars](https://img.shields.io/badge/stars-1188-blue)
      • go-eagle - A Go framework for the API or Microservice with handy scaffolding tools. ![stars](https://img.shields.io/badge/stars-2292-blue)
      • go-health - Library for enabling asynchronous dependency health checks in your service. ![stars](https://img.shields.io/badge/stars-750-blue)
      • go-jump - Port of Google's "Jump" Consistent Hash function. ![stars](https://img.shields.io/badge/stars-384-blue)
      • go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. ![stars](https://img.shields.io/badge/stars-26955-blue)
      • go-micro - A distributed systems development framework. ![stars](https://img.shields.io/badge/stars-22214-blue)
      • go-mysql-lock - MySQL based distributed lock. ![stars](https://img.shields.io/badge/stars-62-blue)
      • go-pdu - A decentralized identity-based social network. ![stars](https://img.shields.io/badge/stars-48-blue)
      • go-sundheit - A library built to provide support for defining async service health checks for golang services. ![stars](https://img.shields.io/badge/stars-554-blue)
      • gorpc - Simple, fast and scalable RPC library for high load. ![stars](https://img.shields.io/badge/stars-708-blue)
      • grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC. ![stars](https://img.shields.io/badge/stars-21723-blue)
      • hprose - Very newbility RPC Library, support 25+ languages now. ![stars](https://img.shields.io/badge/stars-1261-blue)
      • jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0. ![stars](https://img.shields.io/badge/stars-186-blue)
      • jsonrpc - JSON-RPC 2.0 HTTP client implementation. ![stars](https://img.shields.io/badge/stars-346-blue)
      • K8gb - A cloud native Kubernetes Global Balancer. ![stars](https://img.shields.io/badge/stars-992-blue)
      • Kitex - A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice. ![stars](https://img.shields.io/badge/stars-7389-blue)
      • Kratos - A modular-designed and easy-to-use microservices framework in Go. ![stars](https://img.shields.io/badge/stars-24138-blue)
      • liftbridge - Lightweight, fault-tolerant message streams for NATS. ![stars](https://img.shields.io/badge/stars-2588-blue)
      • lura - Ultra performant API Gateway framework with middlewares. ![stars](https://img.shields.io/badge/stars-6514-blue)
      • NATS - NATS is a simple, secure, and ![stars](https://img.shields.io/badge/stars-16843-blue)
      • outboxer - Outboxer is a go library that implements the outbox pattern. ![stars](https://img.shields.io/badge/stars-160-blue)
      • pglock - PostgreSQL-backed distributed locking implementation.
      • pjrpc - Golang JSON-RPC Server-Client with Protobuf spec.
      • raft - Golang implementation of the Raft consensus protocol, by HashiCorp. ![stars](https://img.shields.io/badge/stars-8519-blue)
      • raft - Go implementation of the Raft consensus protocol, by CoreOS. ![stars](https://img.shields.io/badge/stars-772-blue)
      • rain - BitTorrent client and library. ![stars](https://img.shields.io/badge/stars-1039-blue)
      • redis-lock - Simplified distributed locking implementation using Redis. ![stars](https://img.shields.io/badge/stars-1561-blue)
      • resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
      • ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications. ![stars](https://img.shields.io/badge/stars-846-blue)
      • rpcx - Distributed pluggable RPC service framework like alibaba Dubbo. ![stars](https://img.shields.io/badge/stars-8204-blue)
      • Semaphore - A straightforward (micro) service orchestrator. ![stars](https://img.shields.io/badge/stars-94-blue)
      • sleuth - Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). ![stars](https://img.shields.io/badge/stars-379-blue)
      • Tarmac - Framework for writing functions, microservices, or monoliths with WebAssembly ![stars](https://img.shields.io/badge/stars-332-blue)
      • Temporal - Durable execution system for making code fault-tolerant and simple. ![stars](https://img.shields.io/badge/stars-606-blue)
      • torrent - BitTorrent client package. ![stars](https://img.shields.io/badge/stars-5733-blue)
      • trpc-go - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework. ![stars](https://img.shields.io/badge/stars-920-blue)
      • dot - distributed sync using operational transformation/OT. ![stars](https://img.shields.io/badge/stars-87-blue)
      • go-zero - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. ![stars](https://img.shields.io/badge/stars-30721-blue)
      • sponge - A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks. ![stars](https://img.shields.io/badge/stars-1721-blue)
      • micro - A distributed systems runtime for the cloud and beyond. ![stars](https://img.shields.io/badge/stars-12235-blue)
  • Dynamic DNS

      • DDNS - Personal DDNS client with Digital Ocean Networking DNS as backend. ![stars](https://img.shields.io/badge/stars-260-blue)
      • dyndns - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes.
      • GoDNS - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go. ![stars](https://img.shields.io/badge/stars-1555-blue)
  • E-Books

  • Editor Plugins

    • Routers

      • coc-go language server extension for Vim/Neovim - This plugin adds [gopls](https://github.com/golang/tools/blob/master/gopls/README.md) features to Vim/Neovim. ![stars](https://img.shields.io/badge/stars-573-blue)
      • Go Doc - A Visual Studio Code extension for showing definition in output and generating go doc. ![stars](https://img.shields.io/badge/stars-8-blue)
      • Go plugin for JetBrains IDEs - Go plugin for JetBrains IDEs.
      • go-mode - Go mode for GNU/Emacs. ![stars](https://img.shields.io/badge/stars-1406-blue)
      • gocode - Autocompletion daemon for the Go programming language. ![stars](https://img.shields.io/badge/stars-5009-blue)
      • goimports-reviser - Formatting tool for imports. ![stars](https://img.shields.io/badge/stars-652-blue)
      • goprofiling - This extension adds benchmark profiling support for the Go language to VS Code.
      • GoSublime - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features. ![stars](https://img.shields.io/badge/stars-3421-blue)
      • gounit-vim - Vim plugin for generating Go tests based on the function's or method's signature. ![stars](https://img.shields.io/badge/stars-25-blue)
      • vim-compiler-go - Vim plugin to highlight syntax errors on save. ![stars](https://img.shields.io/badge/stars-90-blue)
      • vim-go - Go development plugin for Vim. ![stars](https://img.shields.io/badge/stars-16108-blue)
      • vscode-go - Extension for Visual Studio Code (VS Code) which provides support for the Go language. ![stars](https://img.shields.io/badge/stars-4024-blue)
      • Watch - Runs a command in an acme win on file changes. ![stars](https://img.shields.io/badge/stars-202-blue)
  • Email

      • douceur - CSS inliner for your HTML emails. ![stars](https://img.shields.io/badge/stars-250-blue)
      • email - A robust and flexible email library for Go. ![stars](https://img.shields.io/badge/stars-2710-blue)
      • email-verifier - A Go library for email verification without sending any emails. ![stars](https://img.shields.io/badge/stars-1345-blue)
      • go-dkim - DKIM library, to sign & verify email. ![stars](https://img.shields.io/badge/stars-98-blue)
      • go-email-normalizer - Golang library for providing a canonical representation of email address. ![stars](https://img.shields.io/badge/stars-68-blue)
      • go-email-validator - Modular email validator for syntax, disposable, smtp, etc... checking. ![stars](https://img.shields.io/badge/stars-51-blue)
      • go-imap - IMAP library for clients and servers. ![stars](https://img.shields.io/badge/stars-2170-blue)
      • go-mail - A simple Go library for sending mails in Go. ![stars](https://img.shields.io/badge/stars-946-blue)
      • go-message - Streaming library for the Internet Message Format and mail messages. ![stars](https://img.shields.io/badge/stars-402-blue)
      • go-premailer - Inline styling for HTML mail in Go. ![stars](https://img.shields.io/badge/stars-163-blue)
      • go-simple-mail - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send. ![stars](https://img.shields.io/badge/stars-668-blue)
      • Hectane - Lightweight SMTP client providing an HTTP API. ![stars](https://img.shields.io/badge/stars-224-blue)
      • hermes - Golang package that generates clean, responsive HTML e-mails. ![stars](https://img.shields.io/badge/stars-2879-blue)
      • Maddy - All-in-one (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) email server ![stars](https://img.shields.io/badge/stars-5472-blue)
      • mailchain - Send encrypted emails to blockchain addresses written in Go. ![stars](https://img.shields.io/badge/stars-143-blue)
      • mailgun-go - Go library for sending mail with the Mailgun API. ![stars](https://img.shields.io/badge/stars-720-blue)
      • MailHog - Email and SMTP testing with web and API interface. ![stars](https://img.shields.io/badge/stars-14726-blue)
      • Mailpit - Email and SMTP testing tool for developers. ![stars](https://img.shields.io/badge/stars-6896-blue)
      • mailx - Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library `net/smtp`. ![stars](https://img.shields.io/badge/stars-19-blue)
      • mox - Modern full-featured secure mail server for low-maintenance, self-hosted email. ![stars](https://img.shields.io/badge/stars-4785-blue)
      • SendGrid - SendGrid's Go library for sending email. ![stars](https://img.shields.io/badge/stars-1003-blue)
      • smtp - SMTP server protocol state machine. ![stars](https://img.shields.io/badge/stars-75-blue)
      • smtpmock - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment. ![stars](https://img.shields.io/badge/stars-146-blue)
      • truemail-go - Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more. ![stars](https://img.shields.io/badge/stars-114-blue)
  • Embeddable Scripting Languages

      • anko - Scriptable interpreter written in Go. ![stars](https://img.shields.io/badge/stars-1502-blue)
      • binder - Go to Lua binding library, based on [gopher-lua](https://github.com/yuin/gopher-lua). ![stars](https://img.shields.io/badge/stars-77-blue)
      • cel-go - Fast, portable, non-Turing complete expression evaluation with gradual typing. ![stars](https://img.shields.io/badge/stars-2504-blue)
      • ecal - A simple embeddable scripting language which supports concurrent event processing. ![stars](https://img.shields.io/badge/stars-44-blue)
      • gentee - Embeddable scripting programming language. ![stars](https://img.shields.io/badge/stars-139-blue)
      • gisp - Simple LISP in Go. ![stars](https://img.shields.io/badge/stars-520-blue)
      • go-duktape - Duktape JavaScript engine bindings for Go. ![stars](https://img.shields.io/badge/stars-779-blue)
      • go-lua - Port of the Lua 5.2 VM to pure Go. ![stars](https://img.shields.io/badge/stars-3229-blue)
      • go-php - PHP bindings for Go. ![stars](https://img.shields.io/badge/stars-941-blue)
      • go-python - naive go bindings to the CPython C-API. ![stars](https://img.shields.io/badge/stars-1529-blue)
      • goal - An embeddable scripting array language.
      • goja - ECMAScript 5.1(+) implementation in Go. ![stars](https://img.shields.io/badge/stars-6055-blue)
      • golua - Go bindings for Lua C API. ![stars](https://img.shields.io/badge/stars-668-blue)
      • gopher-lua - Lua 5.1 VM and compiler written in Go. ![stars](https://img.shields.io/badge/stars-6526-blue)
      • gval - A highly customizable expression language written in Go. ![stars](https://img.shields.io/badge/stars-780-blue)
      • metacall - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more. ![stars](https://img.shields.io/badge/stars-1637-blue)
      • ngaro - Embeddable Ngaro VM implementation enabling scripting in Retro. ![stars](https://img.shields.io/badge/stars-30-blue)
      • prolog - Embeddable Prolog. ![stars](https://img.shields.io/badge/stars-665-blue)
      • purl - Perl 5.18.2 embedded in Go. ![stars](https://img.shields.io/badge/stars-41-blue)
      • starlark-go - Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution. ![stars](https://img.shields.io/badge/stars-2447-blue)
      • starlet - Go wrapper for [starlark-go](https://github.com/google/starlark-go) that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions. ![stars](https://img.shields.io/badge/stars-27-blue)
      • tengo - Bytecode compiled script language for Go. ![stars](https://img.shields.io/badge/stars-3619-blue)
      • Wa/凹语言 - The Wa Programming Language embedded in Go. ![stars](https://img.shields.io/badge/stars-1486-blue)
      • expr - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing. ![stars](https://img.shields.io/badge/stars-6747-blue)
  • Error Handling

      • emperror - Error handling tools and best practices for Go libraries and applications. ![stars](https://img.shields.io/badge/stars-353-blue)
      • eris - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors. ![stars](https://img.shields.io/badge/stars-1588-blue)
      • errlog - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place. ![stars](https://img.shields.io/badge/stars-460-blue)
      • errors - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives. ![stars](https://img.shields.io/badge/stars-198-blue)
      • errors - Simple golang error handling with classification primitives. ![stars](https://img.shields.io/badge/stars-6-blue)
      • errors - The most simple error wrapper with awesome performance and minimal memory overhead. ![stars](https://img.shields.io/badge/stars-7-blue)
      • errors - Providing errors with a stack trace and optional structured details. Compatible with github.com/pkg/errors API but does not use it internally.
      • errors - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions. ![stars](https://img.shields.io/badge/stars-70-blue)
      • errors - Go error library with error portability over the network. ![stars](https://img.shields.io/badge/stars-2187-blue)
      • errorx - A feature rich error package with stack traces, composition of errors and more. ![stars](https://img.shields.io/badge/stars-1246-blue)
      • exception - A simple utility package for exception handling with try-catch in Golang. ![stars](https://img.shields.io/badge/stars-35-blue)
      • Fault - An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values. ![stars](https://img.shields.io/badge/stars-175-blue)
      • go-multierror - Go (golang) package for representing a list of errors as a single error. ![stars](https://img.shields.io/badge/stars-2440-blue)
      • multierr - Package for representing a list of errors as a single error. ![stars](https://img.shields.io/badge/stars-1123-blue)
      • oops - Error handling with context, stack trace and source fragments. ![stars](https://img.shields.io/badge/stars-630-blue)
      • tracerr - Golang errors with stack trace and source fragments. ![stars](https://img.shields.io/badge/stars-1077-blue)
      • Falcon - A Simple Yet Highly Powerful Package For Error Handling. ![stars](https://img.shields.io/badge/stars-11-blue)
  • File Handling

      • afero - FileSystem Abstraction System for Go. ![stars](https://img.shields.io/badge/stars-6159-blue)