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

awesome-go

It's a mirror of `avelino/awesome-go`, which sorts the repos by stars, while original `awesome-go` sorts by alphabet only.
https://github.com/vicanso/awesome-go

Last synced: 12 days ago
JSON representation

Actor Model

  • ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin. Stars:5.3K.
  • Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Stars:4.2K.
  • Hollywood - Blazingly fast and light-weight Actor engine written in Golang. Stars:2.1K.

Artificial Intelligence

  • LocalAI - Open Source OpenAI alternative, self-host AI models. Stars:35.5K.
  • langchaingo - LangChainGo is a framework for developing applications powered by language models. Stars:7.7K.
  • Ollama - Run large language models locally. Stars:153.1K.

Audio and Music

  • Oto - A low-level library to play sound on multiple platforms. Stars:1.8K.

Authentication and Authorization

  • jwt-go - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs. Stars:8.5K.
  • oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. Stars:5.7K.
  • goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. Stars:6.2K.
  • keto - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. Stars:5.1K.
  • authboss - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure it, and start building your app without having to build an authentication system each time. Stars:4.1K.
  • openfga - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by CNCF. Stars:4.2K.
  • scs - Session Manager for HTTP servers. Stars:2.4K.
  • osin - Golang OAuth2 server library. Stars:1.9K.
  • gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. Stars:1.9K.
  • gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. Stars:1.6K.
  • oidc - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation Stars:1.7K.
  • jwx - Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies Stars:2.2K.
  • casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC. Stars:19.2K.
  • loginsrv - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. Stars:1.9K.
  • spicedb - A Zanzibar-inspired database that enables fine-grained authorization. Stars:6.1K.

Benchmarks

Other Software

Blockchain

  • go-ethereum - Official Go implementation of the Ethereum protocol. Stars:49.9K.
  • kubo - An IPFS implementation in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol. Stars:16.8K.
  • cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem. Stars:6.8K.
  • tendermint - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols. Stars:5.8K.
  • lnd - A complete implementation of a Lightning Network node. Stars:8.0K.
  • solana-go - Go library to interface with Solana JSON RPC and WebSocket interfaces. Stars:1.4K.

Bot Building

  • telebot - Telegram bot framework is written in Go. Stars:4.4K.
  • wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages. Stars:2.1K.
  • bot - Zero-dependencies Telegram Bot library with additional UI components Stars:1.4K.
  • telegram-bot-api - Simple and clean Telegram bot client. Stars:6.3K.

Build Automation

  • Task - simple "Make" alternative. Stars:13.8K.
  • mage - Mage is a make/rake-like build tool using Go. Stars:4.5K.
  • mmake - Modern Make. Stars:1.7K.
  • xc - Task runner with README.md defined tasks, executable markdown. Stars:1.3K.
  • realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths. Stars:4.5K.
  • air - Air - Live reload for Go apps. Stars:21.8K.

Code Analysis

Routers

  • staticcheck - staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#. Stars:6.6K.
  • golangci-lint
  • revive - in replacement for golint. Stars:5.3K.
  • errcheck - Errcheck is a program for checking for unchecked errors in Go programs. Stars:2.4K.
  • go-critic - source code linter that brings checks that are currently not implemented in other linters. Stars:2.0K.
  • GoPlantUML - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them. Stars:2.1K.
  • golines - Formatter that automatically shortens long lines in Go code. Stars:1.1K.

Command Line

Advanced Console UIs

  • bubbletea - Go framework to build terminal apps, based on The Elm Architecture. Stars:35.3K.
  • termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib. Stars:13.4K.
  • gocui - Minimalist Go library aimed at creating Console User Interfaces. Stars:10.4K.
  • lipgloss - Declaratively define styles for color, format and layout in the terminal. Stars:9.7K.
  • go-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit. Stars:5.4K.
  • bubbles - TUI components for bubbletea. Stars:7.0K.
  • termbox-go - Termbox is a library for creating cross-platform text-based interfaces. Stars:4.7K.
  • pterm - A library to beautify console output on every platform with many combinable components. Stars:5.3K.
  • progressbar - Basic thread-safe progress bar that works in every OS. Stars:4.5K.
  • termdash - Go terminal dashboard based on termbox-go and inspired by termui. Stars:2.9K.
  • asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. Stars:2.9K.
  • spinner - Go package to easily provide a terminal spinner with options. Stars:2.5K.
  • mpb - Multi progress bar for terminal applications. Stars:2.4K.
  • uiprogress - Flexible library to render progress bars in terminal applications. Stars:2.1K.
  • uilive - Library for updating terminal output in real time. Stars:1.7K.
  • termenv - Advanced ANSI style & color support for your terminal applications. Stars:1.9K.
  • gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. Stars:1.6K.
  • aurora - ANSI terminal colors that support fmt.Printf/Sprintf. Stars:1.5K.
  • fx - Terminal JSON viewer & processor. Stars:19.9K.

Standard CLI

  • cobra - Commander for modern Go CLI interactions. Stars:42.0K.
  • urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). Stars:23.5K.
  • elvish - An expressive programming language and a versatile interactive shell. Stars:6.1K.
  • kingpin - Command line and flag parser supporting sub commands (superseded by kong; see below). Stars:3.5K.
  • Dnote - A simple command line notebook with multi-device sync. Stars:2.9K.
  • go-flags - go command line option parser. Stars:2.7K.
  • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. Stars:2.6K.
  • go-arg - Struct-based argument parsing in Go. Stars:2.2K.
  • ops - Unikernel Builder/Orchestrator. Stars:1.4K.
  • liner - Go readline-like library for command-line interfaces. Stars:1.1K.
  • carapace-bin - Multi-shell multi-command argument completer. Stars:1.5K.

Configuration

Standard CLI

  • viper - Go configuration with fangs. Stars:29.3K.
  • godotenv - Go port of Ruby's dotenv library (Loads environment variables from .env). Stars:9.8K.
  • kelseyhightower/envconfig - Go library for managing configuration data from environment variables. Stars:5.3K.
  • env - Parse environment variables to Go structs (with defaults). Stars:5.8K.
  • ini - Go package to read and write INI files. Stars:3.5K.
  • koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. Stars:3.5K.
  • kong - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to kingpin). Stars:2.8K.
  • cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want). Stars:1.9K.
  • sonic - A blazingly fast JSON serializing & deserializing library. Stars:8.7K.

Continuous Integration

Standard CLI

  • CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. Stars:4.8K.
  • woodpecker - Woodpecker is a community fork of the Drone CI system. Stars:5.5K.
  • muffet - Fast website link checker in Go, see alternatives. Stars:2.6K.
  • drone - Drone is a Continuous Integration platform built on Docker, written in Go. Stars:33.3K.

Database

Caches

  • groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. Stars:13.3K.
  • BigCache - Efficient key/value cache for gigabytes of data. Stars:8.0K.
  • GCache - Cache library with support for expirable Cache, LFU, LRU and ARC. Stars:2.7K.
  • gocache - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more. Stars:2.8K.
  • cache2go - In-memory key:value cache which supports automatic invalidation based on timeouts. Stars:2.2K.
  • fastcache - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. Stars:2.3K.
  • otter - A high performance lockless cache for Go. Many times faster than Ristretto and friends. Stars:2.3K.
  • sturdyc - A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant. Stars:1.2K.
  • ttlcache - An in-memory cache with item expiration and generics. Stars:1.2K.
  • ristretto - A high performance memory-bound Go cache. Stars:6.5K.

Database Schema Migration

  • migrate - Database migrations. CLI and Golang library. Stars:17.4K.
  • bytebase - Safe database schema change and version control for DevOps teams. Stars:13.0K.
  • goose - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. Stars:9.2K.
  • atlas - A Database Toolkit. A CLI designed to help companies better work with their data. Stars:7.4K.
  • dbmate - A lightweight, framework-agnostic database migration tool. Stars:6.4K.
  • sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata. Stars:3.4K.
  • skeema - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools. Stars:1.3K.
  • gormigrate - Database schema migration helper for Gorm ORM. Stars:1.1K.
  • goavro - A Go package that encodes and decodes Avro data. Stars:1.0K.
  • soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. Stars:1.5K.

Databases Implemented in Go

  • prometheus - Monitoring system and time series database. Stars:60.5K.
  • tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1. Stars:39.1K.
  • cockroach - Scalable, Geo-Replicated, Transactional Datastore. Stars:31.3K.
  • Milvus - Milvus is a vector database for embedding management, analytics and search. Stars:37.7K.
  • dolt - Dolt – It's Git for Data. Stars:19.1K.
  • rqlite - The lightweight, distributed, relational database built on SQLite. Stars:17.0K.
  • VictoriaMetrics - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. Stars:15.1K.
  • immudb - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. Stars:8.8K.
  • bbolt - An embedded key/value database for Go. Stars:9.1K.
  • goleveldb - Implementation of the LevelDB key/value database in Go. Stars:6.3K.
  • pebble - RocksDB/LevelDB inspired key-value database in Go. Stars:5.5K.
  • buntdb - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. Stars:4.8K.
  • godis - A Golang implemented high-performance Redis server and cluster. Stars:3.8K.
  • LinDB - LinDB is a scalable, high performance, high availability distributed time series database. Stars:3.0K.
  • tiedot - Your NoSQL database powered by Golang. Stars:2.7K.
  • CovenantSQL - CovenantSQL is a SQL database on blockchain. Stars:1.5K.
  • column - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions. Stars:1.5K.
  • diskv - Home-grown disk-backed key-value store. Stars:1.4K.
  • pogreb - Embedded key-value store for read-heavy workloads. Stars:1.4K.
  • objectbox-go - High-performance embedded Object Database (NoSQL) with Go API. Stars:1.2K.
  • redka - Redis re-implemented with SQLite. Stars:4.2K.
  • eliasdb - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language. Stars:1.0K.
  • dgraph - Scalable, Distributed, Low Latency, High Throughput Graph Database. Stars:21.3K.
  • moss - Moss is a simple LSM key-value storage engine written in 100% Go. Stars:1.0K.
  • DiceDB - An open-source, fast, reactive, in-memory database optimized for modern hardware. Higher throughput and lower median latencies, making it ideal for modern workloads. Stars:10.6K.
  • badger - Fast key-value store in Go. Stars:15.0K.
  • ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB. Stars:4.1K.
  • influxdb - Scalable datastore for metrics, events, and real-time analytics. Stars:30.7K.
  • Databunker - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. Stars:1.3K.
  • nutsdb - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. Stars:3.5K.
  • rosedb - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset. Stars:4.9K.
  • lotusdb - Fast k/v database compatible with lsm and b+tree. Stars:2.2K.

Database Tools

  • pgweb - Web-based PostgreSQL database browser. Stars:9.0K.
  • pREST - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. Stars:4.4K.
  • pg_timetable - Advanced scheduling for PostgreSQL. Stars:1.2K.
  • go-mysql - Go toolset to handle MySQL protocol and replication. Stars:4.8K.
  • vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. Stars:20.2K.
  • chproxy - HTTP proxy for ClickHouse database. Stars:1.4K.

SQL Query Builders

  • Squirrel - Go library that helps you build SQL queries. Stars:7.6K.
  • goqu - Idiomatic SQL builder and query library. Stars:2.6K.
  • jet - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. Stars:3.4K.
  • gendry - Non-invasive SQL builder and powerful data binder. Stars:1.6K.
  • sqlc - Generate type-safe code from SQL. Stars:16.0K.
  • xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. Stars:3.9K.

Database Drivers

Interfaces to Multiple Backends

  • cayley - Graph database with support for multiple backends. Stars:15.0K.

NoSQL Database Drivers

  • redis - Redis client for Golang. Stars:21.6K.
  • redigo - Redigo is a Go client for the Redis database. Stars:9.8K.
  • mongo-go-driver - Official MongoDB driver for the Go language. Stars:8.4K.
  • mgo - (unmaintained) MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms. Stars:2.0K.
  • qmgo - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. Stars:1.3K.
  • gomemcache - memcache client library for the Go programming language. Stars:1.8K.
  • gorethink - Go language driver for RethinkDB. Stars:1.6K.

Relational Database Drivers

  • go-sql-driver/mysql - MySQL driver for Go. Stars:15.1K.
  • pgx - PostgreSQL driver supporting features beyond those exposed by database/sql. Stars:12.5K.
  • pq - Pure Go Postgres driver for database/sql. Stars:9.6K.
  • go-sqlite3 - SQLite3 driver for go that uses database/sql. Stars:8.7K.
  • go-mssqldb - Microsoft MSSQL driver for Go. Stars:1.9K.

Search and Analytic Databases

  • elastic - Elasticsearch client for Go. Stars:7.5K.
  • go-elasticsearch - Official Elasticsearch client for Go. Stars:6.0K.
  • elasticsql - Convert sql to elasticsearch dsl in Go. Stars:1.2K.
  • zoekt - Fast trigram based code search. Stars:1.1K.
  • clickhouse-go - ClickHouse SQL client for Go with a database/sql compatibility. Stars:3.2K.

Data Integration Frameworks

Standard CLI

  • omniparser - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. Stars:1.1K.
  • Benthos - A message streaming bridge between a range of protocols. Stars:8.5K.

Data Structures and Algorithms

Bit-packing and Compression

  • roaring - Go package implementing compressed bitsets. Stars:2.8K.

Bit Sets

  • bitset - Go package implementing bitsets. Stars:1.5K.

Bloom and Cuckoo Filters

  • bloom - Go package implementing Bloom filters. Stars:2.7K.
  • boomfilters - Probabilistic data structures for processing continuous, unbounded streams. Stars:1.6K.
  • cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. Stars:1.2K.

Data Structure and Algorithm Collections

  • gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. Stars:17.2K.
  • go-datastructures - Collection of useful, performant, and thread-safe data structures. Stars:7.8K.
  • gostl - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. Stars:1.1K.

Miscellaneous Data Structures and Algorithms

  • gota - Implementation of dataframes, series, and data wrangling methods for Go. Stars:3.2K.

Queues

  • hatchet - Distributed, Fault-tolerant task queue. Stars:6.1K.

Sets

  • golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go. Stars:4.6K.

Text Analysis

  • bleve - Modern text indexing library for go. Stars:10.6K.

Date and Time

Search and Analytic Databases

  • now - Now is a time toolkit for golang. Stars:4.6K.
  • dateparse - Parse date's without knowing format in advance. Stars:2.1K.
  • carbon - A simple, semantic and developer-friendly time package for golang. Stars:5.1K.

Distributed Systems

Search and Analytic Databases

  • go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. Stars:27.4K.
  • Kratos - A modular-designed and easy-to-use microservices framework in Go. Stars:24.9K.
  • go-micro - A distributed systems development framework. Stars:22.5K.
  • grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC. Stars:22.4K.
  • raft - Golang implementation of the Raft consensus protocol, by HashiCorp. Stars:8.8K.
  • rpcx - Distributed pluggable RPC service framework like alibaba Dubbo. Stars:8.3K.
  • 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:7.7K.
  • lura - Ultra performant API Gateway framework with middlewares. Stars:6.6K.
  • torrent - BitTorrent client package. Stars:5.9K.