Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-go
https://github.com/dileepdkumar/awesome-go
Last synced: 1 day ago
JSON representation
-
E-Books
-
Free e-books
- A Go Developer's Notebook
- Build Web Application with Golang
- Building Web Apps With Go
- GoBooks - A curated list of Go books.
- How To Code in Go eBook - A 600 page introduction to Go aimed at first time developers.
- Network Programming With Go
- Practical Go Lessons
- The Go Programming Language
-
E-books for purchase
- Continuous Delivery in Go - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product.
- For the Love of Go - An introductory book for Go beginners.
- Know Go: Generics - A guide to understanding and using generics in Go.
- The Power of Go: Tools - A guide to writing command-line tools in Go.
-
-
Meetups
-
Free e-books
- Golang Copenhagen
- Golang Curitiba - Brazil
- Golang DC, Arlington, VA
- Golang Dorset, UK
- Golang Estonia
- Golang Gurgaon, India
- Golang Hamburg - Germany
- Golang Israel
- Golang Kathmandu
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang North East
- Golang Paris
- Golang Poland
- Golang Pune
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Thessaloniki
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Golang Казань
- Golang Москва
- Golang Питер
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
- Basel Go Meetup
- Belfast Gophers
- Belgrade Golang Meetup
- Berlin Golang
- Brisbane Gophers
- Canberra Gophers
- Go Language NYC
- Go London User Group
- Go Remote Meetup
- Go Toronto
- Go User Group Atlanta
- GoBandung
- GoBridge, San Francisco, CA
- GoCracow - Krakow, Poland
- GoJakarta
- Golang Amsterdam
- Golang Argentina
- Golang Athens
- Golang Baltimore, MD
- Golang Bangalore
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Bulgaria
- Golang Cardiff, UK
-
-
Style Guides
-
Free e-books
-
-
Social Media
-
Twitter
-
Reddit
-
-
Websites
-
Reddit
- Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
- awesome-awesomeness - List of other amazingly awesome lists.
- Go Community on Hashnode - Community of Gophers on Hashnode.
- Go Projects - List of projects on the Go community wiki.
- Go Proverbs - Go Proverbs by Rob Pike.
- go.dev - A hub for Go developers.
- Gophercises - Free coding exercises for budding gophers.
- Learn Go Programming - Learn Go concepts with illustrations.
- Made with Golang
- r/Golang - News about Go.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- TutorialEdge - Golang
- Learn Go Programming - Learn Go concepts with illustrations.
- gowalker.org - Go Project API documentation.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Code with Mukesh - Software Engineer and Blogs @ codewithmukesh.com.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Golang Resources - A curation of the best articles, exercises, talks and videos to learn Go.
-
Tutorials
- 50 Shades of Go - Traps, Gotchas, and Common Mistakes for New Golang Devs.
- A Guide to Golang E-Commerce - Building a Golang site for e-commerce (demo included).
- Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL - We’ll write an API with the help of the powerful Gorilla Mux.
- Building Go Web Applications and Microservices Using Gin - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
- Caching Slow Database Queries - How to cache slow database queries.
- Canceling MySQL - How to cancel MySQL queries.
- CodeCrafters Golang Track
- Games With Go - A video series teaching programming and game development.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go database/sql tutorial - Introduction to database/sql.
- Go Language Tutorial - Learn Go language Tutorial.
- Go Tutorial - Learn Go programming.
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golangbot - Tutorials to get started with programming in Go.
- GolangCode - Collection of code snippets and tutorials to help tackle every day issues.
- GopherSnippets - Code snippets with tests and testable examples for the Go programming language.
- Gosamples - Collection of code snippets that let you solve everyday code problems.
- Hackr.io - Learn Go from the best online golang tutorials submitted & voted by the golang programming community.
- How to Benchmark: dbq vs sqlx vs GORM - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM.
- How To Deploy a Go Web Application with Docker - Learn how to use Docker for Go development and how to build production Docker images.
- How to Use Godog for Behavior-driven Development in Go - Get started with Godog — a Behavior-driven development framework for building and testing Go applications.
- Learning Go by examples - Serie of article in order to learn Golang language by concrete applications as example.
- Programming with Google Go - Coursera Specialization to learn about Go from scratch.
- Saving a Third of Our Memory by Re-ordering Go Struct Fields - How inefficient field ordering in Go structs.
-
-
Command Line
-
Advanced Console UIs
- gommon/color - Style terminal text.
- aurora - ANSI terminal colors that supports fmt.Printf/Sprintf.
- box-cli-maker - Make Highly Customized Boxes for your CLI.
- cfmt - Contextual fmt inspired by bootstrap color classes.
- cfmt - Simple and convenient formatted stylized output fully compatible with fmt library.
- chalk - Intuitive package for prettifying terminal/console output.
- colourize - Go library for ANSI colour text in terminals.
- crab-config-files-templating - Dynamic configuration file templating tool for kubernetes manifest or general configuration files.
- ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method.
- go-ataman - Go library for rendering ANSI colored text templates in terminals.
- go-colorable - Colorable writer for windows.
- go-colortext - Go library for color output in terminals.
- go-isatty - isatty for golang.
- go-prompt - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit).
- gocui - Minimalist Go library aimed at creating Console User Interfaces.
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.
- marker - Easiest way to match and mark strings for colorful terminal outputs.
- mpb - Multi progress bar for terminal applications.
- progressbar - Basic thread-safe progress bar that works in every OS.
- pterm - A library to beautify console output on every platform with many combinable components.
- simpletable - Simple tables in terminal with Go.
- spinner - Go package to easily provide a terminal spinner with options.
- tabby - A tiny library for super simple Golang tables.
- table - Small library for terminal color based tables .
- tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces.
- termdash - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui).
- termenv - Advanced ANSI style & color support for your terminal applications.
- termui - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).
- uilive - Library for updating terminal output in realtime.
- uiprogress - Flexible library to render progress bars in terminal applications.
- uitable - Library to improve readability in terminal apps using tabular data.
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners.
- asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
-
Standard CLI
- hiboot cli - cli application framework with auto configuration and dependency injection.
- acmd - Simple, useful and opinionated CLI package in Go.
- argparse - Command line argument parser inspired by Python's argparse module.
- argv - Go library to split command line string as arguments array using the bash syntax.
- cli - Feature-rich and easy to use command-line package based on golang struct tags.
- cli - Simple and complete API for building command line interfaces in Go.
- climax - Alternative CLI with "human face", in spirit of Go command.
- cmd - Extends the standard `flag` package to support sub commands and more in idiomatic way.
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library.
- cobra - Commander for modern Go CLI interactions.
- command-chain - A go library for configure and run command chains - such like pipelining in unix shells.
- commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags.
- complete - Write bash completions in Go + Go command bash completion.
- Dnote - A simple command line notebook with multi-device sync.
- elvish - An expressive programming language and a versatile interactive shell.
- env - Tag-based environment configuration for structs.
- flag - Simple but powerful command line option parsing library for Go supporting subcommand.
- flaggy - A robust and idiomatic flags package with excellent subcommand support.
- flagvar - A collection of flag argument types for Go's standard `flag` package.
- go-arg - Struct-based argument parsing in Go.
- go-commander - Go library to simplify CLI workflow.
- go-flags - go command line option parser.
- go-getoptions - Go option parser inspired on the flexibility of Perl’s GetOpt::Long.
- gocmd - Go library for building command line applications.
- job - JOB, make your short-term command as a long-term job.
- kingpin - Command line and flag parser supporting sub commands (superseded by `kong`; see below).
- liner - Go readline-like library for command-line interfaces.
- mitchellh/cli - Go library for implementing command-line interfaces.
- mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation.
- ops - Unikernel Builder/Orchestrator.
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
- sand - Simple API for creating interpreters and so much more.
- sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries.
- strumt - Library to create prompt chain.
- subcmd - Another approach to parsing and running subcommands. Works alongside the standard `flag` package.
- ts - Timestamp convert & compare tool.
- ukautz/clif - Small command line interface framework.
- urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).
- wlog - Simple logging interface that supports cross-platform color and concurrency.
- wmenu - Easy to use menu structure for cli applications that prompts users to make choices.
- carapace - Command argument completion generator for spf13/cobra.
- carapace-spec - Define simple completions using a spec file.
- go-andotp - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as library as well.
- carapace-bin - Multi-shell multi-command argument completer.
- clîr - A Simple and Clear CLI library. Dependency free.
-
-
Configuration
-
Standard CLI
- gone/jconf - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.
- aconfig - Simple, useful and opinionated config loader.
- cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want).
- config - Cloud native application configuration. Bind ENV to structs in only two lines.
- config - configure you app using file, environment variables, or flags in two lines of code
- config - JSON or YAML configuration wrapper with environment variables and flags parsing.
- configuration - Library for initializing configuration structs from env variables, files, flags and 'default' tag.
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables.
- configuro - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications.
- confita - Load configuration in cascade from multiple backends into a struct.
- conflate - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema.
- env - Parse environment variables to Go structs (with defaults).
- envcfg - Un-marshaling environment variables to Go structs.
- envconf - Configuration from environment.
- envconfig - Read your configuration from environment variables.
- envh - Helpers to manage environment variables.
- fig - Tiny library for reading configuration from a file and from environment variables (with validation & defaults).
- gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections.
- genv - Read environment variables easily with dotenv support.
- go-aws-ssm - Go package that fetches parameters from AWS System Manager - Parameter Store.
- go-conf - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters.
- go-ini - A Go package that marshals and unmarshals INI-files.
- go-ssm-config - Go utility for loading configuration parameters from AWS SSM (Parameter Store).
- go-up - A simple configuration library with recursive placeholders resolution and no magic.
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`).
- gofigure - Go application configuration made easy.
- GoLobby/Config - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.
- harvester - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.
- kelseyhightower/envconfig - Go library for managing configuration data from environment variables.
- hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
- hocon - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files.
- ingo - Flags persisted in an ini-like config file.
- ini - Go package to read and write INI files.
- ini - INI Parser & Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file.
- joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.
- konfig - Composable, observable and performant config handling for Go for the distributed processing era.
- 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`).
- mini - Golang package for parsing ini-style configuration files.
- nasermirzaei89/env - Simple useful package for read environment variables.
- nfigure - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML
- onion - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP.
- piper - Viper wrapper with config inheritance and key generation.
- store - Lightweight configuration manager for Go.
- swap - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).
- typenv - Minimalistic, zero dependency, typed environment variables library.
- uConfig - Lightweight, zero-dependency, and extendable configuration management.
- viper - Go configuration with fangs.
- xdg - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories).
- xdg - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html).
- env - A lightweight package for loading environment variables into structs.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- gonfig - Tag-based configuration parser which loads values from different providers into typesafe struct.
-
-
Database
-
Database Tools
- hasql - Library for accessing multi-host SQL database installations.
-
-
Distributed Systems
-
Search and Analytic Databases
- dynamolock - DynamoDB-backed distributed locking implementation.
- pglock - PostgreSQL-backed distributed locking implementation.
- raft - Go implementation of the Raft consensus protocol, by CoreOS.
- resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
-
-
File Handling
-
Search and Analytic Databases
- stl - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.
-
-
Goroutines
-
Search and Analytic Databases
- oversight - Oversight is a complete implementation of the Erlang supervision trees.
-
-
Financial
-
Search and Analytic Databases
- fastme - Fast extensible matching engine Go implementation.
- go-finance - Comprehensive financial markets data in Go.
-
-
IoT (Internet of Things)
-
Search and Analytic Databases
- periph - Peripherals I/O to interface with low-level board facilities.
-
-
JSON
-
Search and Analytic Databases
- JSON-to-Proto - Convert JSON to Protobuf online.
-
-
Logging
-
Search and Analytic Databases
- gone/log - Fast, extendable, full-featured, std-lib source compatible log library.
-
-
Miscellaneous
-
Uncategorized
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- VarHandler - Generate boilerplate http input and output handling.
-
-
Networking
-
Transliteration
- gohooks - GoHooks make it easy to send and consume secured web-hooks from a Go application. Inspired by Spatie's Laravel Webhook Client and Server.
-
-
Security
-
HTTP Clients
-
-
Server Applications
-
Testing
-
HTTP Clients
- gocheck - More advanced testing framework alternative to gotest.
-
-
Text Processing
-
Formatters
- bytes - Formats and parses numeric byte values (10K, 2M, 3G, etc.).
-
-
Third-party APIs
-
Utility/Miscellaneous
- go-twitch - Go client for interacting with the Twitch v3 API.
-
-
Utilities
-
Utility/Miscellaneous
- go-safe - Panic-safe sandbox.
-
-
UUID
-
Web Frameworks
-
Utility/Miscellaneous
- REST Layer - Framework to build REST/GraphQL API on top of databases with mostly configuration over code.
-
Middlewares
- go-wrap - Small middlewares package for net/http.
-
-
Code Analysis
-
Routers
- GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
- goreturns - Adds zero-value return statements to match the func return types.
- gosimple - gosimple is a linter for Go source code that specialises on simplifying code.
- 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#.
- unused - unused checks Go code for unused constants, variables, functions and types.
-
-
Editor Plugins
-
Routers
- Go plugin for JetBrains IDEs - Go plugin for JetBrains IDEs.
- goprofiling - This extension adds benchmark profiling support for the Go language to VS Code.
-
-
Go Generate Tools
-
Routers
- re2dfa - Transform regular expressions into finite state machines and output Go source code.
-
-
Go Tools
-
Routers
- generator-go-lang - A [Yeoman](https://yeoman.io) generator to get new Go projects started.
- gotemplate.io - Online tool to preview `text/template` templates live.
-
-
Software Packages
-
DevOps Tools
-
Other Software
-
-
Conferences
-
Other Software
- Capital Go - Washington, D.C., USA.
- GoCon - Tokyo, Japan.
- GoDays - Berlin, Germany.
- GoLab - Florence, Italy.
- GopherChina - Shanghai, China.
- GopherCon - Denver, USA.
- GopherCon Australia - Sydney, Australia.
- GopherCon Europe - Berlin, Germany.
- GopherCon India - Pune, India.
- GopherCon Israel - Tel Aviv, Israel.
- GopherCon UK - London, UK.
- GopherCon Vietnam - Ho Chi Minh City, Vietnam.
- GoWest Conference - Lehi, USA.
- dotGo - Paris, France.
-
-
Audio and Music
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- music-theory - Music theory models in Go.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- id3v2 - ID3 decoding and encoding library for Go.
- Oto - A low-level library to play sound on multiple platforms.
-
Authentication and OAuth
- branca - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.
- cookiestxt - provides a parser of cookies.txt file format.
- go-guardian - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication.
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers.
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang.
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.
- jeff - Simple, flexible, secure and idiomatic web session management with pluggable backends.
- jwt - Lightweight JSON Web Token (JWT) library.
- jwt - Safe, simple and fast JSON Web Tokens for Go.
- jwt-auth - JWT middleware for Golang http servers with many configuration options.
- 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.
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.
- osin - Golang OAuth2 server library.
- otpgo - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go.
- paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO).
- permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt.
- rbac - Minimalistic RBAC package for Go applications.
- scs - Session Manager for HTTP servers.
- securecookie - Efficient secure cookie encoding/decoding.
- session - Go session management for web servers (including support for Google App Engine - GAE).
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
- sessionup - Simple, yet effective HTTP session management and identification package.
- sjwt - Simple jwt generator and parser.
- 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.
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
- otpgen - Library to generate TOTP/HOTP codes.
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC.
-
Blockchain
- cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem.
- go-ethereum - Official Go implementation of the Ethereum protocol.
- gossamer - A Go implementation of the Polkadot Host.
- solana-go - Go library to interface with Solana JSON RPC and WebSocket interfaces.
- 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.
-
Bot Building
- echotron - An elegant and concurrent library for Telegram Bots in Go.
- ephemeral-roles - A Discord bot for managing ephemeral roles based upon voice channel member presence.
- go-chat-bot - IRC, Slack & Telegram bot written in Go.
- go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more.
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.
- go-twitch-irc - Library to write bots for twitch.tv chat
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.
- govkbot - Simple Go [VK](https://vk.com) bot library.
- hanu - Framework for writing Slack bots.
- larry - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go.
- margelet - Framework for building Telegram bots.
- micha - Go Library for Telegram bot api.
- olivia - A chatbot built with an artificial neural network.
- slack-bot - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github...
- slacker - Easy to use framework to create Slack bots.
- slackscot - Another framework for building Slack bots.
- tbot - Telegram bot server with API similar to net/http.
- telebot - Telegram bot framework written in Go.
- telego - Telegram Bot API library for Golang with full one-to-one API implementation.
- teleterm - Telegram Bot Exec Terminal Command.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.
-
Build Automation
- 1build - Command line tool to frictionlessly manage project-specific commands.
- anko - Simple application watcher for multiple programming languages.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes.
- goyek - Create build pipelines in Go.
- mage - Mage is a make/rake-like build tool using Go.
- mmake - Modern Make.
- Task - simple "Make" alternative.
- taskctl - Concurrent task runner.
- realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.
-
Continuous Integration
-
Standard CLI
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.
- duci - A simple ci server no needs domain specific languages.
- gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace.
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
- overalls - Multi-Package go project coverprofile for tools like goveralls.
- roveralls - Recursive coverage testing tool.
- gotestfmt - go test output for humans.
-
-
CSS Preprocessors
-
Standard CLI
- gcss - Pure Go CSS Preprocessor.
- go-libsass - Go wrapper to the 100% Sass compatible libsass project.
-
-
Data Structures and Algorithms
-
Bit-packing and Compression
- bingo - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes.
- binpacker - Binary packer and unpacker helps user build custom binary stream.
- bit - Golang set data structure with bonus bit-twiddling functions.
- crunch - Go package implementing buffers for handling various datatypes easily.
- go-ef - A Go implementation of the Elias-Fano encoding.
- roaring - Go package implementing compressed bitsets.
-
Bit Sets
-
Bloom and Cuckoo Filters
- bloom - Go package implementing Bloom filters.
- bloom - Golang Bloom filter implementation.
- bloomfilter - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library.
- boomfilters - Probabilistic data structures for processing continuous, unbounded streams.
- cuckoo-filter - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available.
- cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.
- ring - Go implementation of a high performance, thread safe bloom filter.
-
Data Structure and Algorithm Collections
- algorithms - Algorithms and data structures.CLRS study.
- go-datastructures - Collection of useful, performant, and thread-safe data structures.
- gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
- gostl - Data structure and algorithm library for go, designed to provide functions similar to C++ STL.
-
Iterators
-
Maps
- cmap - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards.
- dict - Python-like dictionaries (dict) for Go.
- goradd/maps - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.
-
Miscellaneous Data Structures and Algorithms
- concurrent-writer - Highly concurrent drop-in replacement for `bufio.Writer`.
- conjungo - A small, powerful and flexible merge library.
- count-min-log - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).
- fsm - Finite-State Machine package.
- genfuncs - Go 1.18+ generics package inspired by Kotlin's Sequence and Map.
- go-geoindex - In-memory geo index.
- go-rampart - Determine how intervals relate to each other.
- go-tuple - Generic tuple implementation for Go 1.18+.
- go18ds - Go Data Structures using Go 1.18 generics.
- gofal - fractional api for Go.
- hide - ID type with marshalling to/from hash to prevent sending IDs to clients.
- hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
- hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
- slices - Functions that operate on slices; like `package strings` but adapted to work with slices.
- slices - Pure, generic functions for slices.
- go-rquad - Region quadtrees with efficient point location and neighbour finding.
- gota - Implementation of dataframes, series, and data wrangling methods for Go.
-
Nullable Types
-
Queues
- deque - A highly optimized double-ended queue.
- deque - Fast ring-buffer deque (double-ended queue).
- goconcurrentqueue - Concurrent FIFO queue.
- memlog - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.
-
Sets
- dsu - Disjoint Set data structure implementation in Go.
- golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
- goset - A useful Set collection implementation for Go.
- set - Simple set data structure implementation in Go using LinkedHashMap.
-
Text Analysis
- bleve - Modern text indexing library for go.
- go-adaptive-radix-tree - Go implementation of Adaptive Radix Tree.
- go-edlib - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode.
- levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.
- levenshtein - Implementation to calculate levenshtein distance in Go.
- mspm - Multi-String Pattern Matching Algorithm for information retrieval.
- parsefields - Tools for parse JSON-like logs for collecting unique fields and events.
- ptrie - An implementation of prefix tree.
- trie - Trie implementation in Go.
-
-
Actor Model
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang.
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang.
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.
- ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin.
-
Artificial Intelligence
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
- langchaingo - LangChainGo is a framework for developing applications powered by language models.
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- Ollama - Run large language models locally.
-
GUI
-
Search and Analytic Databases
- Wails - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer.
-
Categories
Command Line
79
Websites
64
Data Structures and Algorithms
61
Meetups
59
Configuration
54
Authentication and OAuth
28
Bot Building
22
Conferences
14
E-Books
12
Audio and Music
10
Build Automation
9
Style Guides
8
Continuous Integration
7
Social Media
6
Software Packages
6
Blockchain
5
Artificial Intelligence
5
Code Analysis
5
Distributed Systems
4
Actor Model
4
UUID
2
Financial
2
CSS Preprocessors
2
Editor Plugins
2
Go Tools
2
Server Applications
2
Security
2
Web Frameworks
2
Miscellaneous
2
Go Generate Tools
1
Goroutines
1
JSON
1
Third-party APIs
1
File Handling
1
Utilities
1
GUI
1
Testing
1
Text Processing
1
Networking
1
Database
1
Logging
1
IoT (Internet of Things)
1
Sub Categories
Standard CLI
108
Free e-books
75
Reddit
41
Advanced Console UIs
34
Tutorials
24
Other Software
18
Miscellaneous Data Structures and Algorithms
17
Search and Analytic Databases
12
Routers
10
Text Analysis
9
Bloom and Cuckoo Filters
7
Bit-packing and Compression
6
HTTP Clients
5
Utility/Miscellaneous
5
Twitter
5
Data Structure and Algorithm Collections
4
Queues
4
Sets
4
E-books for purchase
4
Maps
3
Nullable Types
3
DevOps Tools
2
Bit Sets
2
Iterators
2
Uncategorized
2
Middlewares
1
Formatters
1
Database Tools
1
Transliteration
1
Keywords
golang
133
go
113
configuration
26
cli
26
config
18
command-line
15
golang-library
15
bot
12
terminal
12
json
12
environment-variables
11
golang-package
10
yaml
9
environment
9
toml
8
library
7
telegram
7
configuration-management
7
jwt
6
awesome-go
6
color
5
console
5
distributed-systems
5
queue
5
ini
5
slackbot
5
authentication
5
list
5
slack
5
slack-bot
4
generics
4
argument-parser
4
task-runner
4
devops
4
bash
4
set
4
actor-model
4
12-factor
4
blockchain
4
concurrency
4
shell
4
command
4
bitset
4
framework
4
flags
4
telegram-bot
4
data-structures
4
kubernetes
4
bloom-filter
3
http
3