zhou-chao / awesome-go

A curated list of awesome Go frameworks, libraries and software

Home Page:https://awesome-go.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Go

Build Status Awesome Slack Widget Netlify Status

patreon avelino financial support to Awesome Go

A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.

Contributing

Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!

Contents

Authentication and OAuth

Libraries for implementing authentications schemes.

  • casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
  • jwt-go - Golang implementation of JSON Web Tokens (JWT).
  • oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.

Command Line

Standard CLI

Libraries for building standard or basic Command Line applications.

  • cobra - Commander for modern Go CLI interactions.
  • urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces.

  • asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
  • go-isatty - isatty for golang.
  • go-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit.
  • gocui - Minimalist Go library aimed at creating Console User Interfaces.
  • termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib.
  • uiprogress - Flexible library to render progress bars in terminal applications.

Configuration

Libraries for configuration parsing.

  • env - Parse environment variables to Go structs (with defaults).
  • godotenv - Go port of Ruby's dotenv library (Loads environment variables from .env).
  • ini - Go package to read and write INI files.
  • kelseyhightower/envconfig - Go library for managing configuration data from environment variables.

Continuous Integration

Tools for help with continuous integration.

  • CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.
  • drone - Drone is a Continuous Integration platform built on Docker, written in Go.

Data Structures

Generic datastructures and algorithms in Go.

  • boomfilters - Probabilistic data structures for processing continuous, unbounded streams.
  • go-datastructures - Collection of useful, performant, and thread-safe data structures.
  • gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
  • goset - A useful Set collection implementation for Go.
  • gota - Implementation of dataframes, series, and data wrangling methods for Go.

Database

Databases implemented in Go.

  • badger - Fast key-value store in Go.
  • BigCache - Efficient key/value cache for gigabytes of data.
  • bolt - Low-level key/value database for Go.
  • cockroach - Scalable, Geo-Replicated, Transactional Datastore.
  • dgraph - Scalable, Distributed, Low Latency, High Throughput Graph Database.
  • go-cache - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
  • goleveldb - Implementation of the LevelDB key/value database in Go.
  • groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
  • influxdb - Scalable datastore for metrics, events, and real-time analytics.
  • ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
  • prometheus - Monitoring system and time series database.
  • rqlite - The lightweight, distributed, relational database built on SQLite.
  • tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1.

Database schema migration.

  • migrate - Database migrations. CLI and Golang library.
  • sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata.

Database tools.

  • go-mysql - Go toolset to handle MySQL protocol and replication.
  • go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
  • kingshard - kingshard is a high performance proxy for MySQL powered by Golang.
  • orchestrator - MySQL replication topology manager & visualizer.
  • pgweb - Web-based PostgreSQL database browser.
  • vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.

SQL query builder, libraries for building and using SQL.

  • Squirrel - Go library that helps you build SQL queries.

Database Drivers

Libraries for connecting and operating databases.

  • Relational Databases

    • go-mssqldb - Microsoft MSSQL driver for Go.
    • go-sql-driver/mysql - MySQL driver for Go.
    • go-sqlite3 - SQLite3 driver for go that uses database/sql.
    • pgx - PostgreSQL driver supporting features beyond those exposed by database/sql.
    • pq - Pure Go Postgres driver for database/sql.
  • NoSQL Databases

    • gocql - Go language driver for Apache Cassandra.
    • gomemcache - memcache client library for the Go programming language.
    • mongo-go-driver - Official MongoDB driver for the Go language.
    • redigo - Redigo is a Go client for the Redis database.
    • redis - Redis client for Golang.
  • Search and Analytic Databases.

    • bleve - Modern text indexing library for go.
    • elastic - Elasticsearch client for Go.
  • Multiple Backends.

    • cayley - Graph database with support for multiple backends.

Date and Time

Libraries for working with dates and times.

  • dateparse - Parse date's without knowing format in advance.
  • now - Now is a time toolkit for golang.

Distributed Systems

Packages that help with building Distributed Systems.

  • dragonboat - A feature complete and high performance multi-group Raft library in Go.
  • go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
  • grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC.
  • KrakenD - Ultra performant API Gateway framework with middlewares.
  • liftbridge - Lightweight, fault-tolerant message streams for NATS.
  • micro - Pluggable microservice toolkit and distributed systems platform.
  • NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
  • raft - Go implementation of the Raft consensus protocol, by CoreOS.
  • rpcx - Distributed pluggable RPC service framework like alibaba Dubbo.
  • 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.
  • torrent - BitTorrent client package.

Email

Libraries and tools that implement email creation and sending.

  • email - A robust and flexible email library for Go.
  • hermes - Golang package that generates clean, responsive HTML e-mails.
  • MailHog - Email and SMTP testing with web and API interface.

Embeddable Scripting Languages

Embedding other languages inside your go code.

  • expr - an engine that can evaluate expressions.
  • go-lua - Port of the Lua 5.2 VM to pure Go.
  • gopher-lua - Lua 5.1 VM and compiler written in Go.
  • otto - JavaScript interpreter written in Go.
  • tengo - Bytecode compiled script language for Go.

Error Handling

Libraries for handling errors.

  • errors - Package that provides simple error handling primitives.

Files

Libraries for handling files and file systems.

  • afero - FileSystem Abstraction System for Go.

Forms

Libraries for working with forms.

  • gorilla/csrf - CSRF protection for Go web applications & services.
  • nosurf - CSRF protection middleware for Go.

Geographic

Geographic tools and servers

  • Tile38 - Geolocation DB with spatial index and realtime geofencing.

Go Compilers

Tools for compiling Go to other languages.

  • gopherjs - Compiler from Go to JavaScript.
  • llgo - LLVM-based compiler for Go.

Goroutines

Tools for managing and working with Goroutines.

  • ants - A high-performance goroutine pool for golang.
  • goworker - goworker is a Go-based background worker.
  • tunny - Goroutine pool for golang.

GUI

Libraries for building GUI Applications.

Toolkits

  • app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.
  • fyne - Cross platform native GUIs designed for Go, rendered using EFL. Supports: Linux, macOS, Windows.
  • go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron).
  • go-sciter - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform.
  • qt - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
  • ui - Platform-native GUI library for Go. Cross platform.
  • walk - Windows application library kit for Go.
  • webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).

Interaction

  • robotgo - Go Native cross-platform GUI system automation. Control the mouse, keyboard and other.

Hardware

Libraries, tools, and tutorials for interacting with hardware.

See go-hardware for a comprehensive list.

Images

Libraries for manipulating images.

  • bild - Collection of image processing algorithms in pure Go.
  • imaging - Simple Go image processing package.
  • resize - Image resizing for Go with common interpolation methods.
  • smartcrop - Finds good crops for arbitrary images and crop sizes.

IoT (Internet of Things)

Libraries for programming devices of the IoT.

  • flogo - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration.
  • gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals.
  • gobot - Gobot is a framework for robotics, physical computing, and the Internet of Things.

Job Scheduler

Libraries for scheduling jobs.

  • gron - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly.
  • JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in.

JSON

Libraries for working with JSON.

  • GJSON - Get a JSON value with one line of code.
  • gojson - Automatically generate Go (golang) struct definitions from example JSON.

Logging

Libraries for generating and working with log files.

  • glog - Leveled execution logs for Go.
  • logrus - Structured logger for Go.
  • spew - Implements a deep pretty printer for Go data structures to aid in debugging.
  • zap - Fast, structured, leveled logging in Go.
  • zerolog - Zero-allocation JSON logger.

Messaging

Libraries that implement messaging systems.

  • Benthos - A message streaming bridge between a range of protocols.
  • Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.
  • go-socket.io - socket.io library for golang, a realtime application framework.
  • gorush - Push notification server using APNs2 and google GCM.
  • machinery - Asynchronous task queue/job queue based on distributed message passing.
  • NATS Go Client - Lightweight and high performance publish-subscribe and d
  • sarama - Go library for Apache Kafka.

Microsoft Office

  • unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.

Microsoft Excel

Libraries for working with Microsoft Excel.

  • excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
  • xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.

Miscellaneous

Dependency Injection

Libraries for working with dependency injection.

  • dig - A reflection based dependency injection toolkit for Go.
  • fx - A dependency injection based application framework for Go (built on top of dig).

Project Layout

Unofficial set of patterns for structuring projects.

Strings

Libraries for working with strings.

  • xstrings - Collection of useful string functions ported from other languages.

These libraries were placed here because none of the other categories seemed to fit.

  • archiver - Library and command for making and extracting .zip and .tar.gz archives.
  • gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
  • gosms - Your own local SMS gateway in Go that can be used to send SMS.

Natural Language Processing

Libraries for working with human languages.

  • go-i18n - Package and an accompanying tool to work with localized text.

Networking

Libraries for working with various layers of the network.

  • dns - Go library for working with DNS.
  • fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
  • gobgp - BGP implemented in the Go Programming Language.
  • kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
  • quic-go - An implementation of the QUIC protocol in pure Go.
  • sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
  • ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
  • webrtc - A pure Go implementation of the WebRTC API.

HTTP Clients

Libraries for making HTTP requests.

  • grequests - A Go "clone" of the great and famous Requests library.
  • heimdall - An enchanced http client with retry and hystrix capabilities.
  • resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

  • beego orm - Powerful orm framework for go. Support: pq/mysql/sqlite3.
  • go-pg - PostgreSQL ORM with focus on PostgreSQL specific features and performance.
  • GORM - The fantastic ORM library for Golang, aims to be developer friendly.
  • gorp - Go Relational Persistence, ORM-ish library for Go.
  • Xorm - Simple and powerful ORM for Go.

Package Management

Official tooling for dependency and package management

  • go modules - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules.

Official experimental tooling for package management

  • dep - Go dependency tool.

Unofficial libraries for package and dependency management.

  • glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.

Performance

  • jaeger - A distributed tracing system.
  • profile - Simple profiling support package for Go.

Query Language

  • graphql - GraphQL server with a focus on ease of use.
  • graphql-go - Implementation of GraphQL for Go.

Resource Embedding

  • go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
  • packr - The simple and easy way to embed static files into Go binaries.
  • statik - Embeds static files into a Go executable.

Science and Data Analysis

Libraries for scientific computing and data analyzing.

  • gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more.
  • gonum/plot - gonum/plot provides an API for building and drawing plots in Go.
  • gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
  • stats - Statistics package with common functions missing from the Golang standard library.
  • streamtools - general purpose, graphical tool for dealing with streams of data.

Security

Libraries that are used to help make your application more secure.

  • acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
  • Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras.
  • lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt).
  • memguard - A pure Go library for handling sensitive values in memory.
  • secure - HTTP middleware for Go that facilitates some quick security wins.

Serialization

Libraries and tools for binary serialization.

  • gogoprotobuf - Protocol Buffers for Go with Gadgets.
  • goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers.
  • jsoniter - High-performance 100% compatible drop-in replacement of "encoding/json".
  • mapstructure - Go library for decoding generic map values into native Go structures.

Server Applications

  • algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
  • Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use.
  • consul - Consul is a tool for service discovery, monitoring and configuration.
  • devd - Local webserver for developers.
  • etcd - Highly-available key value store for shared configuration and service discovery.
  • minio - Minio is a distributed object storage server.
  • SFTPGo - Full featured and highly configurable SFTP server software.

Stream Processing

Libraries and tools for stream processing and reactive programming.

Template Engines

Libraries and tools for templating and lexing.

  • ace - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold.
  • amber - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade.
  • hero - Hero is a handy, fast and powerful go template engine.
  • pongo2 - Django-like template-engine for Go.
  • quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks

    • baloo - Expressive and versatile end-to-end HTTP API testing made easy.
    • go-cmp - Package for comparing Go values in tests.
    • GoConvey - BDD-style framework with web UI and live reload.
    • httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing.
    • testfixtures - A helper for Rails' like test fixtures to test database applications.
    • Testify - Sacred extension to the standard go testing package.
  • Mock

    • go-sqlmock - Mock SQL driver for testing database interactions.
    • gomock - Mocking framework for the Go programming language.
    • hoverfly - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI.
    • httpmock - Easy mocking of HTTP responses from external resources.
  • Fuzzing and delta-debugging/reducing/shrinking.

    • go-fuzz - Randomized testing system.
    • gofuzz - Library for populating go objects with random values.
  • Selenium and browser control tools.

    • chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
    • selenoid - alternative Selenium hub server that launches browsers within containers.
  • Fail injection

Text Processing

Libraries for parsing and manipulating texts.

  • Specific Formats
    • blackfriday - Markdown processor in Go.
    • bluemonday - HTML Sanitizer.
    • colly - Fast and Elegant Scraping Framework for Gophers.
    • github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
    • go-humanize - Formatters for time, numbers, and memory size to human readable format.
    • GoQuery - GoQuery brings a syntax and a set of features similar to jQuery to the Go language.
    • sh - Shell parser and formatter.
    • toml - TOML configuration format (encoder/decoder with reflection).
  • Utility
    • gotabulate - Easily pretty-print your tabular data with Go.
    • xurls - Extract urls from text.

Third-party APIs

Libraries for accessing third party APIs.

Utilities

General utilities and tools to make your life easier.

  • boilr - Blazingly fast CLI tool for creating projects from boilerplate templates.
  • ctop - Top-like interface (e.g. htop) for container metrics.
  • delve - Go debugger.
  • ergo - The management of multiple local services running over different ports made easy.
  • evaluator - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend.
  • filetype - Small package to infer the file type checking the magic numbers signature.
  • fzf - Command-line fuzzy finder written in Go.
  • go-funk - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...).
  • godropbox - Common libraries for writing Go services/applications from Dropbox.
  • goreleaser - Deliver Go binaries as fast and easily as possible.
  • 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.
  • hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.
  • mmake - Modern Make.
  • panicparse - Groups similar goroutines and colorizes stack dump.
  • peco - Simplistic interactive filtering tool.
  • realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.
  • spinner - Go package to easily provide a terminal spinner with options.
  • sqlx - provides a set of extensions on top of the excellent built-in database/sql package.
  • Storm - Simple and powerful toolkit for BoltDB.
  • Task - simple "Make" alternative.
  • usql - usql is a universal command-line interface for SQL databases.
  • wuzz - Interactive cli tool for HTTP inspection.

UUID

Libraries for working with UUIDs.

  • ulid - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier).
  • uuid - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid.

Validation

Libraries for validation.

  • govalidator - Validators and sanitizers for strings, numerics, slices and structs.
  • govalidator - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation.
  • ozzo-validation - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags.
  • validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.

Version Control

Libraries for version control.

  • git2go - Go bindings for libgit2.
  • go-git - highly extensible Git implementation in pure Go.

Video

Libraries for manipulating video.

  • gmf - Go bindings for FFmpeg av* libraries.
  • goav - Comphrensive Go bindings for FFmpeg.
  • m3u8 - Parser and generator library of M3U8 playlists for Apple HLS.

Web Frameworks

Full stack web frameworks.

  • Beego - beego is an open-source, high-performance web framework for the Go programming language.
  • Buffalo - Bringing the productivity of Rails to Go!
  • Echo - High performance, minimalist Go web framework.
  • Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.
  • Gizmo - Microservice toolkit used by the New York Times.
  • go-json-rest - Quick and easy way to setup a RESTful JSON API.
  • Goa - Goa provides a holistic approach for developing remote APIs and microservices in Go.
  • Macaron - Macaron is a high productive and modular design web framework in Go.
  • Revel - High-productivity web framework for the Go language.
  • utron - Lightweight MVC framework for Go(Golang).

Middlewares

Actual middlewares

  • CORS - Easily add CORS capabilities to your API.
  • go-server-timing - Add/parse Server-Timing header.
  • Limiter - Dead simple rate limit middleware for Go.
  • Tollbooth - Rate limit HTTP request handler.

Libraries for creating HTTP middlewares

  • alice - Painless middleware chaining for Go.
  • negroni - Idiomatic HTTP middleware for Golang.
  • render - Go package for easily rendering JSON, XML, and HTML template responses.

Routers

  • Bone - Lightning Fast HTTP Multiplexer.
  • chi - Small, fast and expressive HTTP router built on net/context.
  • fasthttprouter - High performance router forked from httprouter. The first router fit for fasthttp.
  • gocraft/web - Mux and middleware package in Go.
  • httprouter - High performance router. Use this and the standard http handlers to form a very high performance web framework.
  • mux - Powerful URL router and dispatcher for golang.

Windows

  • go-ole - Win32 OLE implementation for golang.

Tools

Go software and plugins.

Code Analysis

  • errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
  • gcvis - Visualise Go program GC trace data in real time.
  • lint - Run linters as part of go test.
  • 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#.

Editor Plugins

  • Go plugin for JetBrains IDEs - Go plugin for JetBrains IDEs.
  • go-language-server - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol.
  • go-mode - Go mode for GNU/Emacs.
  • go-plus - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting.
  • gocode - Autocompletion daemon for the Go programming language.
  • 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.
  • gounit-vim - Vim plugin for generating Go tests based on the function's or method's signature.
  • theia-go-extension - Go language support for the Theia IDE.
  • vim-compiler-go - Vim plugin to highlight syntax errors on save.
  • vim-go - Go development plugin for Vim.
  • vscode-go - Extension for Visual Studio Code (VS Code) which provides support for the Go language.
  • Watch - Runs a command in an acme win on file changes.

Go Generate Tools

  • genny - Elegant generics for Go.
  • gotests - Generate Go tests from your source code.

Go Tools

  • go-callvis - Visualize call graph of your Go program using dot format.
  • go-swagger - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API.
  • OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.

Software Packages

Software written in Go.

DevOps Tools

  • bombardier - Fast cross-platform HTTP benchmarking tool.
  • bosun - Time Series Alerting Framework.
  • fac - Command-line user interface to fix git merge conflicts.
  • gaia - Build powerful pipelines in any programming language.
  • Gitea - Fork of Gogs, entirely community driven.
  • Gogs - A Self Hosted Git Service in the Go Programming Language.
  • gox - Dead simple, no frills Go cross compile tool.
  • goxc - build tool for Go, with a focus on cross-compiling and packaging.
  • GVM - GVM provides an interface to manage Go versions.
  • Hey - Hey is a tiny program that sends some load to a web application.
  • kubernetes - Container Cluster Manager from Google.
  • Moby - Collaborative project for the container ecosystem to assemble container-based systems.
  • Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
  • script - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks.
  • StatusOK - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected.
  • traefik - Reverse proxy and load balancer with support for multiple backends.
  • Vegeta - HTTP load testing tool and library. It's over 9000!
  • webhook - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server.

Other Software

  • borg - Terminal based search engine for bash snippets.
  • Circuit - Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications.
  • Comcast - Simulate bad network connections.
  • confd - Manage local application configuration files using templates and data from etcd or consul.
  • croc - Easily and securely send files or folders from one computer to another.
  • Docker - Open platform for distributed applications for developers and sysadmins.
  • drive - Google Drive client for the commandline.
  • Duplicacy - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication.
  • GoBoy - Nintendo Game Boy Color emulator written in Go.
  • Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
  • lgo - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility.
  • LiteIDE - LiteIDE is a simple, open source, cross-platform Go IDE.
  • myLG - Command Line Network Diagnostic tool written in Go.
  • nes - Nintendo Entertainment System (NES) emulator written in Go.
  • restic - De-duplicating backup program.
  • scc - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates.
  • Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
  • snap - Powerful telemetry framework.
  • Stack Up - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers.
  • toxiproxy - Proxy to simulate network and system conditions for automated tests.

Resources

Where to discover new Go libraries.

Benchmarks

  • autobench - Framework to compare the performance between different Go versions.
  • go-benchmark-app - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results.
  • go-benchmarks - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches.
  • go-http-routing-benchmark - Go HTTP request router benchmark and comparison.
  • go-web-framework-benchmark - Go web framework benchmark.
  • go_serialization_benchmarks - Benchmarks of Go serialization methods.
  • gocostmodel - Benchmarks of common basic operations for the Go language.
  • golang-sql-benchmark - Collection of benchmarks for popular Go database/SQL utilities.
  • gospeed - Go micro-benchmarks for calculating the speed of language constructs.
  • kvbench - Key/Value database benchmark.
  • skynet - Skynet 1M threads microbenchmark.
  • speedtest-resize - Compare various Image resize algorithms for the Go language.

E-Books

Tutorials

About

A curated list of awesome Go frameworks, libraries and software

https://awesome-go.com/

License:MIT License


Languages

Language:Go 93.9%Language:Dockerfile 6.1%