financial support to Awesome Go
A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.
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!
-
- Audio and Music
- Authentication and OAuth
- Bot Building
- Command Line
- Configuration
- Continuous Integration
- CSS Preprocessors
- Data Structures
- Database
- Database Drivers
- Date and Time
- Distributed Systems
- Embeddable Scripting Languages
- Error Handling
- Files
- Financial
- Forms
- Functional
- Game Development
- Generation and Generics
- Geographic
- Go Compilers
- Goroutines
- GUI
- Hardware
- Images
- IoT
- Job Scheduler
- JSON
- Logging
- Machine Learning
- Messaging
- Microsoft Office
- Miscellaneous
- Natural Language Processing
- Networking
- OpenGL
- ORM
- Package Management
- Performance
- Query Language
- Resource Embedding
- Science and Data Analysis
- Security
- Serialization
- Server Applications
- Stream Processing
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- UUID
- Validation
- Version Control
- Video
- Web Frameworks
- Windows
- XML
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.
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).
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.
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.
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.
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.
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.
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.
-
Multiple Backends.
- cayley - Graph database with support for multiple backends.
Libraries for working with dates and times.
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.
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.
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.
Libraries for handling errors.
- errors - Package that provides simple error handling primitives.
Libraries for handling files and file systems.
- afero - FileSystem Abstraction System for Go.
Libraries for working with forms.
- gorilla/csrf - CSRF protection for Go web applications & services.
- nosurf - CSRF protection middleware for Go.
Geographic tools and servers
- Tile38 - Geolocation DB with spatial index and realtime geofencing.
Tools for compiling Go to other languages.
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.
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.
Libraries, tools, and tutorials for interacting with hardware.
See go-hardware for a comprehensive list.
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.
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.
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.
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.
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.
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.
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
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.
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).
Unofficial set of patterns for structuring projects.
- golang-standards/project-layout - Set of common historical and emerging project layout patterns in the Go ecosystem.
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.
Libraries for working with human languages.
- go-i18n - Package and an accompanying tool to work with localized text.
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.
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.
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.
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.
- graphql - GraphQL server with a focus on ease of use.
- graphql-go - Implementation of GraphQL for Go.
- 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.
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.
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.
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.
- 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.
Libraries and tools for stream processing and reactive programming.
- go-streams - Go stream processing library.
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.
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.
-
Selenium and browser control tools.
-
Fail injection
- failpoint - An implementation of failpoints for Golang.
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.
Libraries for accessing third party APIs.
- amazon-product-advertising-api - Go Client Library for Amazon Product Advertising API.
- anaconda - Go client library for the Twitter 1.1 API.
- aws-sdk-go - The official AWS SDK for the Go programming language.
- brewerydb - Go library for accessing the BreweryDB API.
- cachet - Go client library for Cachet (open source status page system).
- circleci - Go client library for interacting with CircleCI's API.
- clarifai - Go client library for interfacing with the Clarifai API.
- codeship-go - Go client library for interacting with Codeship's API v2.
- coinpaprika-go - Go client library for interacting with Coinpaprika's API.
- discordgo - Go bindings for the Discord Chat API.
- ethrpc - Go bindings for Ethereum JSON RPC API.
- facebook - Go Library that supports the Facebook Graph API.
- fcm - Go library for Firebase Cloud Messaging.
- gads - Google Adwords Unofficial API.
- gami - Go library for Asterisk Manager Interface.
- gcm - Go library for Google Cloud Messaging.
- geo-golang - Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs.
- github - Go library for accessing the GitHub REST API v3.
- githubql - Go library for accessing the GitHub GraphQL API v4.
- go-chronos - Go library for interacting with the Chronos Job Scheduler
- go-hacknews - Tiny Go client for HackerNews API.
- go-here - Go client library around the HERE location based APIs.
- go-imgur - Go client library for imgur
- go-jira - Go client library for Atlassian JIRA
- go-marathon - Go library for interacting with Mesosphere's Marathon PAAS.
- go-myanimelist - Go client library for accessing the MyAnimeList API.
- go-sophos - Go client library for the Sophos UTM REST API with zero dependencies.
- go-sptrans - Go client library for the SPTrans Olho Vivo API.
- go-telegraph - Telegraph publishing platform API client.
- go-trending - Go library for accessing trending repositories and developers at Github.
- go-twitch - Go client for interacting with the Twitch v3 API.
- go-twitter - Go client library for the Twitter v1.1 APIs.
- go-unsplash - Go client library for the Unsplash.com API.
- go-xkcd - Go client for the xkcd API.
- golyrics - Golyrics is a Go library to fetch music lyrics data from the Wikia website.
- gomalshare - Go library MalShare API malshare.com
- GoMusicBrainz - Go MusicBrainz WS2 client library.
- google - Auto-generated Google APIs for Go.
- google-analytics - Simple wrapper for easy google analytics reporting.
- google-cloud - Google Cloud APIs Go Client Library.
- google-email-audit-api - Go client library for Google G Suite Email Audit API.
- gostorm - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells.
- hipchat - This project implements a golang client library for the Hipchat API.
- hipchat (xmpp) - A golang package to communicate with HipChat over XMPP.
- igdb - Go client for the Internet Game Database API.
- lastpass-go - Go client library for the LastPass API.
- libgoffi - Library adapter toolbox for native libffi integration
- Medium - Golang SDK for Medium's OAuth2 API.
- megos - Client library for accessing an Apache Mesos cluster.
- minio-go - Minio Go Library for Amazon S3 compatible cloud storage.
- mixpanel - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications.
- patreon-go - Go library for Patreon API.
- paypal - Wrapper for PayPal payment API.
- playlyfe - The Playlyfe Rest API Go SDK.
- pushover - Go wrapper for the Pushover API.
- rrdaclient - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP.
- shopify - Go Library to make CRUD request to the Shopify API.
- simples3 - Simple no frills AWS S3 Library using REST with V4 Signing written in Go.
- slack - Slack API in Go.
- smite - Go package to wraps access to the Smite game API.
- spotify - Go Library to access Spotify WEB API.
- steam - Go Library to interact with Steam game servers.
- stripe - Go client for the Stripe API.
- textbelt - Go client for the textbelt.com txt messaging API.
- translate - Go online translation package.
- Trello - Go wrapper for the Trello API.
- TripAdvisor - Go wrapper for the TripAdvisor API.
- tumblr - Go wrapper for the Tumblr v2 API.
- uptimerobot - Go wrapper and command-line client for the Uptime Robot v2 API.
- vl-go - Go client library around the VerifID identity verification layer API.
- webhooks - Webhook receiver for GitHub and Bitbucket.
- wit-go - Go client for wit.ai HTTP API.
- ynab - Go wrapper for the YNAB API.
- zooz - Go client for the Zooz API.
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.
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.
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.
Libraries for version control.
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.
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).
- 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.
- alice - Painless middleware chaining for Go.
- negroni - Idiomatic HTTP middleware for Golang.
- render - Go package for easily rendering JSON, XML, and HTML template responses.
- 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 forfasthttp
. - 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.
- go-ole - Win32 OLE implementation for golang.
Go software and plugins.
- 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#.
- 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-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 written in Go.
- 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.
- 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.
Where to discover new Go libraries.
- 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.
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go 101 - A book focusing on Go syntax/semantics and all kinds of details.
- Go Bootcamp
- Go Succinctly - in Persian.
- GoBooks - A curated list of Go books.
- Learning Go
- Network Programming With Go
- The Go Programming Language
- The Golang Standard Library by Example (Chinese)
- Web Application with Go the Anti-Textbook
- Writing A Compiler In Go
- Writing An Interpreter In Go
- 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).
- A Tour of Go - Interactive tour of Go.
- Build web application with Golang - Golang ebook intro how to build a web app with golang.
- 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.
- Ethereum Development with Go - A little e-book on Ethereum Development with Go.
- Games With Go - A video series teaching programming and game development.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go Cheat Sheet - Go's reference card.
- Go database/sql tutorial - Introduction to database/sql.
- Go Playground for iOS - Interactively edit & play Go snippets on your mobile device.
- Go WebAssembly Tutorial - Building a Simple Calculator
- go-patterns - Curated list of Go design patterns, recipes and idioms.
- Golang for Node.js Developers - Examples of Golang compared to Node.js for learning.
- Golangbot - Tutorials to get started with programming in Go.
- GolangCode - Collection of code snippets and tutorials to help tackle every day issues.
- Hackr.io - Learn Go from the best online golang tutorials submitted & voted by the golang programming community.
- 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.
- Learn Go with TDD - Learn Go with test-driven development.
- Learning Golang - From zero to hero - Getting started with golang for beginner.
- package main - YouTube channel about Programming in Go.
- Programming with Google Go - Coursera Specialization to learn about Go from scratch.
- The world’s easiest introduction to WebAssembly with Golang
- Working with Go - Intro to go for experienced programmers.
- Your basic Go - Huge collection of tutorials and how to's.