Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

awesome-go


https://github.com/GoldGrandMaster/awesome-go

Last synced: 4 days ago
JSON representation

  • Sponsorships

  • Command Line

    • Standard CLI

      • hiboot cli - cli application framework with auto configuration and dependency injection.
      • 1build - Command line tool to frictionlessly manage project-specific commands.
      • 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.
    • Advanced Console UIs

  • Configuration

    • Advanced Console UIs

      • 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.
  • Database

    • Advanced Console UIs

      • hasql - Library for accessing multi-host SQL database installations.
      • go-cache - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
      • ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
      • go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
      • octillery - Go package for sharding databases ( Supports every ORM or raw SQL ).
      • orchestrator - MySQL replication topology manager & visualizer.
      • pREST - Serve a RESTful API from any PostgreSQL database.
      • vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
      • Dotsql - Go library that helps you keep sql files in one place and use them with ease.
      • xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
  • Distributed Systems

    • Advanced Console UIs

      • 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.
      • KrakenD - Ultra performant API Gateway framework with middlewares.
      • NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
  • File Handling

    • Advanced Console UIs

      • stl - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.
  • Financial

    • Advanced Console UIs

      • fastme - Fast extensible matching engine Go implementation.
      • go-finance - Comprehensive financial markets data in Go.
  • Goroutines

    • Advanced Console UIs

      • oversight - Oversight is a complete implementation of the Erlang supervision trees.
      • artifex - Simple in-memory job queue for Golang using worker-based dispatching.
  • IoT (Internet of Things)

    • Advanced Console UIs

      • periph - Peripherals I/O to interface with low-level board facilities.
  • Logging

    • Advanced Console UIs

      • 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

    • Uncategorized

      • 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.
      • HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
      • quic-go - An implementation of the QUIC protocol in pure Go.
  • ORM

    • HTTP Clients

      • beego orm - Powerful orm framework for go. Support: pq/mysql/sqlite3.
      • ent - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data.
  • Resource Embedding

    • HTTP Clients

      • go-embed - Generates go code to embed resource files into your library or executable.
  • Security

    • HTTP Clients

      • Interpol - Rule-based data generator for fuzzing and penetration testing.
      • themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
      • acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
  • Server Applications

    • HTTP Clients

      • consul - Consul is a tool for service discovery, monitoring and configuration.
      • etcd - Highly-available key value store for shared configuration and service discovery.
      • Flagr - Flagr is an open-source feature flagging and A/B testing service.
      • flipt - A self contained feature flag solution written in Go and Vue.js
      • RoadRunner - High-performance PHP application server, load-balancer and process manager.
  • Testing

    • HTTP Clients

      • gocheck - More advanced testing framework alternative to gotest.
      • badio - Extensions to Go's `testing/iotest` package.
      • frisby - REST API testing framework.
      • GoConvey - BDD-style framework with web UI and live reload.
      • godog - Cucumber or Behat like BDD framework for Go.
      • GoSpec - BDD-style testing framework for the Go programming language.
      • restit - Go micro framework to help writing RESTful API integration test.
      • chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
  • Text Processing

    • HTTP Clients

      • gommon/bytes - Format bytes to string.
      • colly - Fast and Elegant Scraping Framework for Gophers.
      • did - DID (Decentralized Identifiers) Parser and Stringer in Go.
      • encdec - Package provides a generic interface to encoders and decodersa.
      • parseargs-go - string argument parser that understands quotes and backslashes.
      • xj2go - Convert xml or json to go struct.
  • Audio and Music

    • Contents

      • flac - Native Go FLAC encoder/decoder with support for FLAC streams.
      • gaad - Native Go AAC bitstream parser.
      • go-sox - libsox bindings for go.
      • GoAudio - Native Go Audio Processing Library.
      • gosamplerate - libsamplerate bindings for go.
      • id3v2 - ID3 decoding and encoding library for Go.
      • malgo - Mini audio library.
      • minimp3 - Lightweight MP3 decoder library.
      • mix - Sequence-based Go-native audio mixer for music apps.
      • mp3 - Native Go MP3 decoder.
      • music-theory - Music theory models in Go.
      • Oto - A low-level library to play sound on multiple platforms.
      • PortAudio - Go bindings for the PortAudio audio I/O library.
      • portmidi - Go bindings for PortMidi.
      • vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies).
      • waveform - Go package capable of generating waveform images from audio streams.
  • Third-party APIs

    • HTTP Clients

      • go-twitch - Go client for interacting with the Twitch v3 API.
      • githubql - Go library for accessing the GitHub GraphQL API v4.
      • google - Auto-generated Google APIs for Go.
      • clarifai - Go client library for interfacing with the Clarifai API.
      • google-cloud - Google Cloud APIs Go Client Library.
      • google-email-audit-api - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/).
      • libgoffi - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration
      • translate - Go online translation package.
  • Utilities

    • HTTP Clients

      • go-safe - Panic-safe sandbox.
      • cmd - Library for executing shell commands on osx, windows and linux.
      • goreporter - Golang tool that does static analysis, unit testing, code review and generate code quality report.
      • hub - wrap git commands with additional functionality to interact with github from the terminal.
      • lets-go - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities.
      • usql - usql is a universal command-line interface for SQL databases.
  • Web Frameworks

    • Middlewares

      • go-wrap - Small middlewares package for net/http.
      • go-fault - Fault injection middleware for Go.
      • gores - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs.
    • HTTP Clients

      • aah - Scalable, performant, rapid development Web framework for Go.
      • Banjo - Very simple and fast web framework for Go.
      • REST Layer - Framework to build REST/GraphQL API on top of databases with mostly configuration over code.
  • Code Analysis

    • Routers

      • GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
      • Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
      • 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.
      • tarp - tarp finds functions and methods without direct unit tests in Go source code.
  • Editor Plugins

  • Go Generate Tools

    • Routers

      • re2dfa - Transform regular expressions into finite state machines and output Go source code.
  • Go Tools

    • Routers

      • gb - An easy to use project based build tool for the Go programming language.
      • generator-go-lang - A [Yeoman](http://yeoman.io) generator to get new Go projects started.
      • gilbert - Build system and task runner for Go projects.
      • OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
  • Software Packages

    • DevOps Tools

      • Gogs - A Self Hosted Git Service in the Go Programming Language.
      • Wide - Web-based IDE for Teams using Golang.
      • govvv - “go build” wrapper to easily add version information into Go binaries.
      • Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
      • traefik - Reverse proxy and load balancer with support for multiple backends.
    • Other Software

      • syncthing - Open, decentralized file synchronization tool and protocol.
      • tsuru - Extensible and open source Platform as a Service software.
      • borg - Terminal based search engine for bash snippets.
      • Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
      • Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
      • vFlow - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector.
  • Authentication and OAuth

    • Contents

      • 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, and start building your app without having to build an authentication system each time.
      • branca - Golang implementation of Branca Tokens.
      • casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
      • cookiestxt - provides parser of cookies.txt file format.
      • go-email-normalizer - Golang library for providing a canonical representation of email address.
      • 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.
      • go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang.
      • 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.
      • httpauth - HTTP Authentication middleware.
      • jeff - Simple, flexible, secure and idiomatic web session management with pluggable backends.
      • jwt - Clean and easy to use implementation of JSON Web Tokens (JWT).
      • 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.
      • jwt-go - Golang implementation of JSON Web Tokens (JWT).
      • loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam.
      • 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.
      • scope - Easily Manage OAuth2 Scopes In Go.
      • 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).
      • sessiongate-go - Go session management using the SessionGate Redis module.
      • 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.
  • Conferences

  • E-Books

  • Meetups

  • Bot Building

    • Contents

      • 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 - Libary 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.
      • Kelp - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies.
      • margelet - Framework for building Telegram bots.
      • micha - Go Library for Telegram bot api.
      • olivia - A chatbot built with an artificial neural network.
      • 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.
      • telegram-bot-api - Simple and clean Telegram bot client.
      • Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
  • Style Guides

  • Social Media

  • Websites

  • GUI

    • Advanced Console UIs

      • Wails - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer.
      • app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.
      • webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).
  • UUID

    • HTTP Clients

      • uniq - No hassle safe, fast unique identifiers with commands.
  • Continuous Integration

    • Advanced Console UIs

      • drone - Drone is a Continuous Integration platform built on Docker, written in Go.
  • Data Structures

    • Advanced Console UIs

      • bitset - Go package implementing bitsets.
      • bloom - Bloom filters implemented in Go.
      • encoding - Integer Compression Libraries for Go.
  • Database Drivers

    • Advanced Console UIs

      • gomemcache - memcache client library for the Go programming language.
      • gorethink - Go language driver for RethinkDB.
      • redis - Redis client for Golang.
      • cayley - Graph database with support for multiple backends.
  • Embeddable Scripting Languages

    • Advanced Console UIs

      • expr - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing.
  • Generation and Generics

    • Advanced Console UIs

      • efaceconv - Code generation tool for high performance conversion from interface{} to immutable type without allocations.
  • Images

    • Advanced Console UIs

  • Performance

    • HTTP Clients

      • pixie - No instrumentation tracing for Golang applications via eBPF.
  • Query Language

    • HTTP Clients

      • graphql - GraphQL server with a focus on ease of use.
  • Science and Data Analysis

    • HTTP Clients

      • go-dsp - Digital Signal Processing for Go.
  • Serialization

    • HTTP Clients

      • asn1 - Asn.1 BER and DER encoding library for golang.
      • structomap - Library to easily and dynamically generate maps from static structures.
  • Benchmarks

    • Other Software

      • gocostmodel - Benchmarks of common basic operations for the Go language.