awesome-go
Awesome Go frameworks, libraries and software. Crawl and sort daily by AwesomelsBot
https://github.com/thoqbk/awesome-go
Last synced: 6 days ago
JSON representation
-
E-Books
- GoBooks - List of Golang books - ★ 5575
- web-dev-golang-anti-textbook - Learn how to write webapps without a framework in Go. - ★ 2136
-
Websites
- awesome-remote-job - A curated list of awesome remote jobs and resources. Inspired by - ★ 12886
- awesome-awesomeness - A curated list of awesome awesomeness - ★ 22663
- go - ★ 49162
- learn-go-with-tests - Learn Go with test-driven development - ★ 2283
- build-web-application-with-golang - A golang ebook intro how to build a web with golang - ★ 26182
- working-with-go - A set of example golang code to start learning Go - ★ 1054
- golang-graphics - Community-contributed Go graphics files - ★ 137
- gocryforhelp - List of opensource projects looking for help - ★ 30
- go-lang-cheat-sheet - An overview of Go syntax and features. - ★ 3520
-
Command Line
- gommon - ★ 252
- hiboot - ★ 44
- termui - Golang terminal dashboard - ★ 8005
- gocui - Minimalist Go package aimed at creating Console User Interfaces. - ★ 3643
- cobra - A Commander for modern Go CLI interactions - ★ 9473
- gcli - The easy way to build Golang command-line application. - ★ 845
- blessed-contrib - Build terminal dashboards using ascii/ansi art and javascript - ★ 11904
- kingpin - A Go (golang) command line and flag parser - ★ 2108
- aurora - Golang ultimate ANSI-colors that supports Printf/Sprintf methods - ★ 373
- cfmt - Contextual fmt inspired by bootstrap color classes - ★ 45
- chalk - Intuitive package for prettifying terminal/console output. - ★ 278
- colourize - An ANSI colour terminal package for Go - ★ 13
- ctc - Console Text Colors - The non-invasive cross-platform terminal color library does not need to modify the Print method - ★ 4
- go-ataman - Another Text Attribute Manupulator - ★ 7
- go-colorable - ★ 309
- go-colortext - Change the color of console text. - ★ 179
- go-isatty - ★ 276
- go-prompt - Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. - ★ 1869
- color - Terminal color rendering tool library, support 8/16 colors, 256 colors, RGB color rendering output, compatible with Windows. CLI 控制台颜色渲染工具库, 简洁的使用API,支持16色,256色,RGB色彩渲染输出,兼容 Windows 环境 - ★ 31
- mpb - multi progress bar written in Go - ★ 354
- progressbar - A really basic thread-safe progress bar for Golang applications - ★ 413
- simpletable - Simple tables in terminal with Go - ★ 103
- tabular - Tabular simplifies printing ASCII tables from command line utilities - ★ 14
- termbox-go - Pure Go termbox implementation - ★ 3073
- uilive - uilive is a go library for updating terminal output in realtime - ★ 689
- uiprogress - A go library to render progress bars in terminal applications - ★ 1200
- uitable - A go library to improve readability in terminal apps using tabular data - ★ 451
- argparse - Argparse for golang. Just because `flag` sucks - ★ 57
- argv - ★ 9
- cli - CLI - A package for building command line app with go - ★ 405
- cli - Simple and complete API for building command line applications in Go - ★ 37
- commandeer - Automatically sets up command line flags based on struct fields and tags. - ★ 66
- complete - bash completion written in go + bash completion for go command - ★ 517
- env - Tag-based environment configuration for structs - ★ 34
- flag - Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand - ★ 85
- flaggy - Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. - ★ 390
- flagvar - A collection of CLI argument types for the Go `flag` package. - ★ 23
- go-arg - Struct-based argument parsing in Go - ★ 536
- go-commander - Go library to simplify CLI workflow - ★ 7
- go-flags - go command line option parser - ★ 1200
- gocmd - A Go library for building command line applications - ★ 23
- liner - Pure Go line editor with history, inspired by linenoise - ★ 489
- cli - A Go library for implementing command-line interfaces. - ★ 877
- mow.cli - A versatile library for building CLI applications in Go - ★ 572
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. - ★ 531
- strumt - Strumt is a library to create prompt chain - ★ 20
- clif - Another CLI framework for Go. It works on my machine. - ★ 89
- cli - A simple, fast, and fun package for building command line apps in Go - ★ 9265
- wlog - A simple logging interface that supports cross-platform color and concurrency. - ★ 26
- wmenu - An easy to use menu structure for cli applications that prompts users to make choices. - ★ 59
- terminal-table - Ruby ASCII Table Generator, simple and feature rich. - ★ 1062
- color - Color package for Go (golang) - ★ 2745
- docopt.go - A command-line arguments parser that will make you smile. - ★ 996
- readline - Readline is a pure go(golang) implementation for GNU-Readline kind library - ★ 1245
- drive - Google Drive client for the commandline - ★ 4484
- sflags - Generate flags by parsing structures - ★ 64
- python-prompt-toolkit - Library for building powerful interactive command line applications in Python - ★ 4870
- termtables - Go ASCII Table Generator, ported from the Ruby terminal-tables library - ★ 193
-
Configuration
- gone - ★ 22
- viper - Go configuration with fangs - ★ 6743
- config - JSON or YAML configuration wrapper with convenient access methods. - ★ 178
- configure - Configure is a Go package that gives you easy configuration of your project through redundancy - ★ 39
- confita - Load configuration in cascade from multiple backends into a struct - ★ 179
- env - A KISS way to deal with environment variables in Go. - ★ 615
- envconfig - Small library to read your configuration from environment variables - ★ 127
- envh - Go helpers to manage environment variables - ★ 89
- go-up - go-up! A simple configuration library with recursive placeholders resolution and no magic. - ★ 15
- godotenv - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) - ★ 1533
- gofigure - Go configuration made easy! - ★ 55
- config - Go config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名 - ★ 24
- hjson-go - Hjson for Go - ★ 150
- ingo - persistent storage for flags in go - ★ 21
- ini - Package ini provides INI file read and write functionality in Go. - ★ 1170
- config - A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP - ★ 190
- envconfig - Golang library for managing configuration data from environment variables - ★ 1919
- mini - A golang package for parsing ini-style configuration files - ★ 19
- store - A dead simple configuration manager for Go applications - ★ 235
- xdg - A cross platform package that follows the XDG Standard - ★ 14
- envcfg - Un-marshaling environment variables to Go structs - ★ 88
- envconf - Configure Go applications from the environment - ★ 7
- conflate - Library providing routines to merge and validate JSON, YAML and/or TOML files - ★ 15
- gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections - ★ 99
- sprbox - Build-environment aware toolbox factory & agnostic, layered, config parser (supporting YAML, TOML, JSON and Environment vars). - ★ 3
- goconfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - ★ 83
-
Logging
- gone - ★ 22
- go-spew - Implements a deep pretty printer for Go data structures to aid in debugging - ★ 2688
- zap - Blazing fast, structured, leveled logging in Go. - ★ 5491
- distillog - Logging, distilled - ★ 14
- glg - Simple and fast lockfree logging library for golang - ★ 23
- glog - Leveled execution logs for Go - ★ 2023
- go-cronowriter - Time based rotating file writer - ★ 15
- go-log - Simple and configurable Logging in Go, with level, formatters and writers - ★ 6
- go-log - a golang log lib supports level and multi handlers - ★ 19
- go-log - A logger, for Go - ★ 31
- go-logger - Simple logger for Go programs. Allows custom formats for messages. - ★ 199
- gomol - Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs - ★ 12
- journald - Go implementation of systemd Journal's native API for logging - ★ 12
- log - Structured logging package for Go. - ★ 621
- log - Simple, configurable and scalable Structured Logging for Go. - ★ 256
- log - Structured log interface - ★ 19
- logvoyage - LogVoyage - logging SaaS written in GoLang - ★ 82
- log15 - Structured, composable logging for Go - ★ 816
- logdump - Package for multi-level logging - ★ 7
- logex - An golang log lib, supports tracking and level, wrap by standard log lib - ★ 33
- logger - Minimalistic logging library for Go. - ★ 129
- logo - Golang logger to different configurable writers. - ★ 4
- logrus - Structured, pluggable logging for Go. - ★ 8917
- logrusly - Loggly Hooks for GO Logrus logger - ★ 24
- logutils - Utilities for slightly better logging in Go (Golang). - ★ 228
- logxi - A 12-factor app logger built for performance and happy development - ★ 327
- lumberjack - lumberjack is a log rolling package for Go - ★ 1041
- mlog - A simple logging module for go, with a rotating file feature and console logging. - ★ 16
- onelog - Dead simple, super fast, zero allocation and modular logger for Golang - ★ 291
- ozzo-log - A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets. - ★ 96
- seelog - Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting. - ★ 1215
- log - Logging packages for Go - ★ 44
- tail - Go package for reading from continously updated files (tail -f) - ★ 1236
- xlog - plugin architecture and flexible log system for golang - ★ 3
- xlog - xlog is a logger for net/context aware HTTP applications - ★ 127
- zerolog - Zero Allocation JSON Logger - ★ 1486
- gologger - Simple Logger for golang. Logs Into console, file or ElasticSearch. Simple, easy to use. - ★ 38
- logmatic - Colorized logger for Golang with dynamic log level configuration - ★ 1
- logmatic - Colorized logger for Golang with dynamic log level configuration - ★ 1
-
Miscellaneous
- generators - ★ 3
- werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called. - ★ 7
- base64Captcha - golang base64-captcha supports digits, numbers,alphabet, arithmetic, audio and digit-alphabet captcha - ★ 423
- bot - IRC, Slack, Telegram and RocketChat bot written in go - ★ 369
- go-sarah - Simple yet customizable bot framework written in Go. - ★ 109
- hanu - Golang Framework for writing Slack bots - ★ 76
- margelet - Telegram Bot Framework for Go - ★ 48
- slacker - Slack Bot Framework - ★ 218
- go-multierror - A Go (golang) package for representing a list of errors as a single error. - ★ 515
- jobs - A persistent and flexible background jobs library for go. - ★ 432
- alice - An additive dependency injection container for Golang. - ★ 29
- strutil - String utilities for Go - ★ 34
- xstrings - Package xstrings: A collection of useful string functions in Go. - ★ 517
- anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection - ★ 8
- antch - Antch, a fast, powerful and extensible web crawling & scraping framework for Go - ★ 110
- archiver - Easily create and extract .zip, .tar, .tar.gz, .tar.bz2, .tar.xz, .tar.lz4, .tar.sz, and .rar (extract-only) files with Go - ★ 1653
- autoflags - Populate go command line app flags from config struct - ★ 21
- avgRating - Calculate average score and rating based on Wilson Score Equation - ★ 8
- banner - An easy way to add useful startup banners into your Go applications - ★ 190
- battery - cross-platform, normalized battery information library - ★ 106
- bitio - Highly optimized bit-level Reader and Writer for Go. - ★ 67
- browscap_go - GoLang Library for Browser Capabilities Project - ★ 27
- captcha - Package captcha provides an easy to use, unopinionated API for captcha generation - ★ 24
- go-conv - Fast conversions across various Go types with a simple API. - ★ 331
- datacounter - Golang counters for readers/writers - ★ 25
- ffmt - Golang beautify data display for Humans - ★ 84
- go-commons-pool - a generic object pool for golang - ★ 550
- go-resiliency - Resiliency patterns for golang - ★ 701
- go-unarr - Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives) - ★ 44
- gofakeit - Random fake data generator written in go - ★ 188
- gommit - Enforce git message commit consistency - ★ 55
- gopsutil - psutil for golang - ★ 3057
- gosh - Go Statistics Handler - ★ 11
- gosms - Your own local SMS gateway in Go - ★ 1174
- gountries - Gountries provides: Countries (ISO-3166-1), Country Subdivisions(ISO-3166-2), Currencies (ISO 4217), Geo Coordinates(ISO-6709) as well as translations, country borders and other stuff exposed as struct data. - ★ 181
- health - An easy to use, extensible health check library for Go applications. - ★ 327
- healthcheck - An simple, easily extensible and concurrent health-check library for Go services - ★ 54
- hostutils - A golang library for packing and unpacking hosts list - ★ 5
- indigo - A distributed unique ID generator of using Sonyflake and encoded by Base58 - ★ 41
- lk - Simple licensing library for golang. - ★ 77
- morse - Morse Code Library in Go - ★ 38
- pdfgen - HTTP service to generate PDF from Json requests - ★ 17
- persian - Some utilities for Persian language in Go (Golang) - ★ 22
- sandid - Every grain of sand on earth has its own ID. - ★ 3
- shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. - ★ 3
- shortid - Super short, fully unique, non-sequential and URL friendly Ids - ★ 348
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... - ★ 108
- turtle - Emojis for Go - ★ 57
- url-shortener - A golang URL Shortener - ★ 9
- xkg - User level X Keyboard Grabber - ★ 36
- ghorg - Quickly clone an entire GitHub org into one directory - ★ 13
- errors - Simple error handling primitives - ★ 3634
- go.uuid - UUID package for Go - ★ 2539
- uuid - A UUID package originally forked from github.com/satori/go.uuid - ★ 325
- wuid - An extremely fast UUID alternative written in golang - ★ 214
- Goid - A UUIDv4 generation package written in go - ★ 13
- uuid - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. - ★ 6
- Goid - A UUIDv4 generation package written in go - ★ 13
-
Text Processing
- gommon - ★ 252
- guesslanguage - Guess the natural language of a text in Go - ★ 39
- go-slugify - Pretty Slug. - ★ 22
- slug - URL-friendly slugify with multiple languages support. - ★ 240
- slugify - A Go slugify application that handles string - ★ 25
- gotext - Go (Golang) GNU gettext utilities package - ★ 181
- enca - Minimal cgo bindings for libenca - ★ 5
- align - A general purpose application and library for aligning text. - ★ 43
- go-fixedwidth - Encoding and decoding for fixed-width formatted data - ★ 14
- go-humanize - Go Humans! (formatters for units to human friendly sizes) - ★ 1626
- gotabulate - Gotabulate - Easily pretty-print your tabular data with Go - ★ 186
- bbConvert - Converter from BBCode to HTML - ★ 5
- blackfriday - Blackfriday: a markdown processor for Go - ★ 3352
- goq - A declarative struct-tag-based HTML unmarshaling or scraping package for Go built on top of the goquery library - ★ 117
- htmlquery - htmlquery, an XPath query package for HTML document. - ★ 35
- mxj - Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. - ★ 293
- toml - TOML parser for Golang with reflection. - ★ 2316
- allot - Parse placeholder and wildcard text commands - ★ 31
- commonregex - A collection of common regular expressions for Go - ★ 506
- doi - Parse and check doi objects in go. - ★ 2
- editorconfig-core-go - EditorConfig Core written in Go - ★ 26
- go-nmea - A NMEA parser library in pure Go - ★ 66
- go-vcard - A Go library to parse and format vCard - ★ 13
- gofeed - Parse RSS and Atom feeds in Go - ★ 929
- gographviz - Parses the Graphviz DOT language in golang - ★ 222
- gonameparts - Takes a full name and splits it into individual name parts - ★ 27
- parth - Path parsing for segment unmarshaling and slicing. - ★ 22
- sdp - RFC 4566 SDP implementation in go - ★ 45
- sh - A shell parser, formatter and interpreter (POSIX/Bash/mksh) - ★ 1430
- genex - Genex package for Go - ★ 48
- goregen - randexp for Go. - ★ 32
- bluemonday - bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS - ★ 1027
- dataflowkit - Extract structured data from web sites. Web sites scraping. - ★ 158
- goquery - A little like that j-thing, only in Go. - ★ 6461
- xurls - Extract urls from text - ★ 377
- go-runewidth - ★ 157
- kace - Common case conversions covering common initialisms. - ★ 8
- radix - A fast string sorting algorithm - ★ 56
- inject - Package inject provides a reflect based injector. - ★ 1017
- encoding - Package provides a generic interface to encoders and decoders - ★ 3
- xj2go - Convert xml and json to go struct - ★ 14
- xj2go - Convert xml and json to go struct - ★ 14
- inject - Package inject provides a reflect based injector. - ★ 1017
- syndfeed - A syndication feed parser for Atom 1.0 and RSS 2.0. - ★ 3
- parseargs-go - A string argument parser that understands quotes and backslashes - ★ 4
- colly - Elegant Scraper and Crawler Framework for Golang - ★ 6214
-
Code Analysis
- go-tools - ★ 1908
- go-tools - ★ 1908
- go-tools - ★ 1908
- gometalinter - Concurrently run Go lint tools and normalise their output - ★ 3156
- go-critic - The most opinionated Go source code linter for code audit. - ★ 400
- lint - [mirror] This is a linter for Go source code. - ★ 2737
- errcheck - errcheck checks that you checked errors. - ★ 1137
- go-cleanarch - Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects. - ★ 223
- gcvis - Visualise Go program GC trace data in real time - ★ 848
- php-parser - PHP parser written in Go - ★ 528
- unconvert - Remove unnecessary type conversions from Go source - ★ 226
- goast-viewer - Golang AST visualizer - ★ 306
- interfacer - A linter that suggests interface types - ★ 717
- gostatus - A command line tool that shows the status of Go repositories. - ★ 226
- apicompat - apicompat checks recent changes to a Go project for backwards incompatible changes - ★ 153
- dupl - a tool for code clone detection - ★ 127
- checkstyle - checkstyle for go - ★ 85
- validate - A Go package to automatically validate fields with tags - ★ 62
- lint - Run linters from Go code - - ★ 61
- go-outdated - Find outdated golang packages - ★ 46
- blanket - MOVED TO GITLAB - ★ 11
-
Distributed Systems
- etcd - ★ 21176
- digota - ecommerce microservice - ★ 248
- tendermint - ⟁ Tendermint Core (BFT Consensus) in Go - ★ 2473
- celeriac.v1 - Golang client library for adding support for interacting and monitoring Celery workers, tasks and events. - ★ 43
- consistent - Consistent hashing with bounded loads in Golang - ★ 136
- drmaa - Compute cluster (HPC) job submission library for Go (#golang) based on the open DRMAA standard. - ★ 21
- emitter - High performance, distributed and low latency publish-subscribe platform. - ★ 1426
- flowgraph - Flowgraph package for scalable asynchronous system development - ★ 2
- gleam - Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly. - ★ 1648
- glow - Glow is an easy-to-use distributed computation system written in Go, similar to Hadoop Map Reduce, Spark, Flink, Storm, etc. I am also working on another similar pure Go system, , which is more flexible and more performant. - ★ 2225
- go-health - Library for enabling asynchronous health checks in your service - ★ 385
- go-jump - go-jump: Jump consistent hashing - ★ 211
- kit - A standard library for microservices. - ★ 11792
- gorpc - Simple, fast and scalable golang rpc library for high load - ★ 493
- grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC - ★ 6819
- hprose-golang - Hprose is a cross-language RPC. This project is Hprose 2.0 for Golang. - ★ 856
- jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0 - ★ 85
- jsonrpc - A simple go implementation of json rpc 2.0 client over http - ★ 65
- raft - Golang implementation of the Raft consensus protocol - ★ 2220
- ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications - ★ 505
- rpcx - Faster multil-language bidirectional RPC framework in Go, like alibaba Dubbo and weibo Motan in Java, but with more features, Scale easily. - ★ 2924
- sleuth - A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services - ★ 279
- torrent - Full-featured BitTorrent client package and utilities - ★ 2473
- jaeger - CNCF Jaeger, a Distributed Tracing System - ★ 6344
- libzmq - ZeroMQ core engine in C++, implements ZMTP/3.1 - ★ 4702
- go-peerflix - Go Peerflix - ★ 339
- redis-lock - ★ 79
- gnatsd - High-Performance server for NATS, the cloud native messaging system. - ★ 4823
- krakend - Ultra performant API Gateway with middlewares - ★ 1020
- heimdall - An enhanced HTTP client for Go - ★ 599
-
Financial
- go-finance - Deprecrated in favor of - ★ 540
- accounting - money and currency formatting for golang - ★ 415
- decimal - Arbitrary-precision fixed-point decimal numbers in go - ★ 1167
- go-finance - Go library containing a collection of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - ★ 25
- go-money - Go implementation of Fowler's Money pattern - ★ 492
- ofxgo - Golang library for querying and parsing OFX - ★ 48
- techan - Technical Analysis Library for Golang - ★ 76
- transaction - Embedded database for accounts transactions. - ★ 31
- vat - Go package for dealing with EU VAT. Does VAT number validation & rates retrieval. - ★ 51
-
Third-party APIs
- go-twitch - A golang client for the Twitch v3 API - public APIs only (for now) - ★ 14
- go-jira - Go client library for Atlassian JIRA - ★ 345
- go-tgbot - Golang telegram bot API wrapper, session-based router and middleware - ★ 76
- govkbot - VK bot package for Go - ★ 18
- micha - Client lib for Telegram bot api - ★ 8
- tbot - Telegram Bot Server - ★ 168
- telebot - Telebot is a Telegram bot framework in Go. - ★ 743
- discordgo - (Golang) Go bindings for Discord - ★ 723
- go-amazon-product-advertising-api - Go Client Library for Amazon Product Advertising API - ★ 32
- anaconda - A Go client library for the Twitter 1.1 API - ★ 924
- brewerydb - Go library for API - ★ 14
- cachet - Go(lang) client library for Cachet (open source status page system). - ★ 57
- go-circleci - Go library for interacting with CircleCI - ★ 32
- codeship-go - Go library for accessing the Codeship API v2 - ★ 15
- coinpaprika-api-go-client - Go client library for interacting with Coinpaprika's API - ★ 3
- ethrpc - Golang client for ethereum json rpc api - ★ 142
- facebook - A Facebook Graph API SDK For Go. - ★ 690
- fcm - Firebase Cloud Messaging for application servers implemented using the Go programming language. - ★ 27
- gads - Google Adwords API for Go - ★ 36
- gami - GO - Asterisk AMI Interface - ★ 26
- geo-golang - Go library to access geocoding and reverse geocoding APIs - ★ 260
- go-github - Go library for accessing the GitHub API - ★ 4063
- go-chronos - Go Chronos 3.x REST API Client - ★ 2
- go-hacknews - Tiny utility Go client for HackerNews API. - ★ 7
- go-imgur - Go library to use the imgur.com API - ★ 9
- go-marathon - A GO API library for working with Marathon - ★ 177
- go-myanimelist - Go library for accessing the MyAnimeList API: - ★ 14
- go-sophos - Sophos UTM 9 REST API Client in Golang - ★ 2
- go-trending - Go library for accessing trending repositories and developers at Github. - ★ 95
- go-twitter - Go Twitter REST and Streaming API v1.1 - ★ 543
- go-unsplash - Golang Client for the Unsplash API - ★ 13
- go-xkcd - xkcd.com API client - ★ 36
- golyrics - A simple Go package to fetch lyrics from Wikia - ★ 28
- gomusicbrainz - a Go (Golang) MusicBrainz WS2 client library - work in progress - ★ 31
- go-google-analytics - Simple Reporting for Google Analytics - ★ 12
- 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. - ★ 114
- hipchat - This project implements a Go client library for the Hipchat API. - ★ 108
- igdb - Go client for the Internet Game Database API - ★ 18
- medium-sdk-go - A Golang SDK for Medium's OAuth2 API - ★ 105
- megos - Go(lang) client library for accessing information of an Apache Mesos cluster. - ★ 54
- minio-go - Minio Client SDK for Go - ★ 554
- mixpanel - Golang Mixpanel Client - ★ 25
- patreon-go - Patreon Go API client - ★ 14
- playlyfe-go-sdk - This is the official Playlyfe Golang Sdk - ★ 1
- pushover - Go wrapper for the Pushover API - ★ 47
- rrdaclient - Go bindings for RRDA - ★ 8
- go-shopify - Simple Shopify API for the Go Programming Language - ★ 19
- smitego - SmiteGo is an API wrapper for the Smite game from HiRez. It is written in Go! - ★ 9
- go-spotify - Go library for the Spotify Web API - ★ 16
- go-steam - Go library for querying Source servers - ★ 11
- stripe-go - Go library for the Stripe API. - ★ 805
- trello - Trello API wrapper for Go - ★ 72
- gumblr - A Go Wrapper for the Tumblr v2 API - ★ 6
- uptimerobot - Client library for UptimeRobot v2 API - ★ 24
- webhooks - Webhook receiver for GitHub, Bitbucket and GitLab - ★ 240
- wit-go - Go client for wit.ai HTTP API - ★ 12
- ynab.go - Go client for the YNAB API. It covers 100% of the resources made available by the YNAB API. (UNOFFICIAL) - ★ 6
- go-zooz - Zooz API client for Go - ★ 4
- aws-sdk-go - AWS SDK for the Go programming language. - ★ 4292
- slack - Slack API in Go - ★ 1898
- goamz - Golang Amazon Library - ★ 677
- telegraph - Official unofficial Golang bindings for Telegraph API - ★ 48
- go-tmdb - ★ 11
- go-sptrans - Go client library for the SPTrans Olho Vivo API. - ★ 5
- PayPal-Go-SDK - Golang client for PayPal REST API - ★ 259
- telegram-bot-api - Golang bindings for the Telegram Bot API - ★ 1249
- telegraph - Official unofficial Golang bindings for Telegraph API - ★ 48
- gcm - Google Cloud Messaging for application servers implemented using the Go programming language. - ★ 29
- translate - Go online translation package - ★ 25
- textbelt - golang library for textbelt.com - ★ 12
- go-google-email-audit-api - Go Client Library for G Suite Email Audit API - ★ 5
- hipchat - A golang package to communicate with HipChat over XMPP - ★ 112
- clarifai-go - Clarifai library for Go - ★ 58
- githubv4 - Package githubv4 is a client library for accessing GitHub GraphQL API v4 ( ). - ★ 340
- google-api-go-client - Auto-generated Google APIs for Go. - ★ 1580
- google-cloud-go - Google Cloud Client Libraries for Go. - ★ 1420
-
Web Frameworks
- wrap - Go http.Hander based middleware stack with context sharing - ★ 54
- florest-core - A high performance workflow based REST API framework - ★ 50
- zeus - Go HTTP router. - ★ 111
- medeina - Go HTTP routing tree based on HttpRouter. Inspired by Roda and Cuba. - ★ 18
- siesta - Composable framework for writing HTTP handlers in Go. - ★ 348
- echo - High performance, minimalist Go web framework - ★ 12106
- chi - lightweight, idiomatic and composable router for building Go HTTP services - ★ 4456
- web - Go Router + Middleware. Your Contexts. - ★ 1347
- go-json-rest - A quick and easy way to setup a RESTful JSON API - ★ 3200
- go-tigertonic - A Go framework for building JSON web services inspired by Dropwizard - ★ 989
- httptreemux - High-speed, flexible tree-based HTTP router for Go. - ★ 358
- beego - beego is an open-source, high-performance web framework for the Go programming language. - ★ 17708
- gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. - ★ 21908
- httprouter - A high performance HTTP request router that scales well - ★ 8062
- negroni - Idiomatic HTTP Middleware for Golang - ★ 5887
- mux - A powerful URL router and dispatcher for golang. - ★ 7476
- tango - Micro & pluggable web framework for Go - ★ 741
- stats - A Go middleware that stores various information about your web application (response time, status code count, etc.) - ★ 504
- macaron - Package macaron is a high productive and modular web framework in Go. - ★ 2575
- revel - A high productivity, full-stack web framework for the Go language. - ★ 10443
- cors - Go net/http configurable handler to handle CORS requests - ★ 925
- lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. - ★ 360
- bone - Lightning Fast HTTP Multiplexer - ★ 1170
- alice - Painless middleware chaining for Go - ★ 1671
- pat - ★ 1149
- ln-paywall - Go middleware for monetizing your API on a per-request basis with Bitcoin and Lightning - ★ 66
- fasthttprouter - A high performance fasthttp request router that scales well - ★ 588
- go-server-timing - Go (golang) library for creating and consuming HTTP Server-Timing headers - ★ 717
- aero - Fast and secure web server for Go. - ★ 71
- limiter - Dead simple rate limit middleware for Go. - ★ 415
- gondola - The web framework for writing faster sites, faster - ★ 312
- neo - Go Web Framework - ★ 378
- goji - Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang) - ★ 678
- mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. - ★ 330
- golf - The Golf web framework - ★ 229
- go-rest - A small and evil REST framework for Go - ★ 110
- api - A REST framework for quickly writing resource based services in Golang. - ★ 29
- utron - A lightweight MVC framework for Go(Golang) - ★ 2088
- gorouter - xujiajun/gorouter is a simple and fast HTTP router for Go. It is easy to build RESTful APIs and your web framework. - ★ 332
- tollbooth - Simple middleware to rate-limit HTTP requests. - ★ 993
- gizmo - A Microservice Toolkit from The New York Times - ★ 2438
- render - Go package for easily rendering JSON, XML, binary data, and HTML templates responses. - ★ 1164
- hiboot - hiboot is a high performance web and cli application framework with dependency injection support - ★ 44
- goa - Design-based APIs and microservices in Go - ★ 3121
- gongular - A different approach to Go web frameworks - ★ 401
- ozzo-routing - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs. - ★ 307
- interpose - Minimalist net/http middleware for golang - ★ 287
- vestigo - Echo Inspired Stand Alone URL Router - ★ 234
- muxchain - Lightweight Middleware for net/http - ★ 203
- router - A lightning fast HTTP router - ★ 149
- renderer - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go - ★ 110
- alien - A lightweight and fast http router from outer space - ★ 95
- violetear - Go HTTP router - ★ 91
- air - An ideally refined web framework for Go. - ★ 90
- Bxog - Bxog is a simple and fast HTTP router for Go (HTTP request multiplexer). - ★ 90
- rye - A tiny http middleware for Golang with added handlers for common needs. - ★ 88
- xmux - xmux is a httprouter fork on top of xhandler (net/context aware) - ★ 85
- core - Pure handlers stack - ★ 81
- xff - A Golang Middleware to handle X-Forwarded-For Header - ★ 68
- pure - Is a lightweight HTTP router that sticks to the std "net/http" implementation - ★ 66
- golax - Golax, a go implementation for the Lax framework. - ★ 64
- chain - Composable chains of nested http.Handler instances. - ★ 63
- microservice - This library provides a simple framework of microservice, which includes a configurator, a logger, metrics, and of course the handler - ★ 45
- yarf - Yet Another REST Framework - ★ 45
- fireball - Go web framework with a natural feel - ★ 41
- gorouter - Go Server/API micro framwework, HTTP request router, multiplexer, mux - ★ 36
- formjson - Go net/http handler to transparently manage posted JSON - ★ 30
- rex - Pleasures for Web in Golang - ★ 24
- fastrouter - FastRouter is a fast, flexible HTTP router written in Go. - ★ 17
- vox - Go web framework inspired by koa - ★ 11
- client-timing - An HTTP client for go-server-timing middleware. - ★ 10
- catena - gRPC interceptor catenation. - ★ 7
- sawsij - ★ 2
- banjo - BANjO is a simple web framework written in Go (golang) - ★ 3
- webgo - A mini-toolkit/micro-framework to build web apps; with handler chaining, middleware and context injection, with standard library compliant HTTP handlers(i.e. http.HandlerFunc). - ★ 55
- fireball - Go web framework with a natural feel - ★ 41
- gores - Go package that handles HTML, JSON, XML and etc. responses - ★ 77
- traffic - Sinatra inspired regexp/pattern mux and web framework for Go [NOT MAINTAINED] - ★ 514
- medeina - Go HTTP routing tree based on HttpRouter. Inspired by Roda and Cuba. - ★ 18
- gem - no long maintain anymore - ★ 153
- go-relax - Framework for building RESTful API's in Go - ★ 153
- zerver - a RESTful API framework - ★ 144
-
Go Generate Tools
- re2dfa - Transform regular expressions into finite state machines and output Go source code. This repository has migrated to - ★ 160
- gotests - Generate Go tests from your source code. - ★ 1487
- genny - Elegant generics for Go - ★ 745
- gocontracts - A tool for design-by-contract in Go - ★ 27
- generic - flexible data type for Go - ★ 22
- gounit - Unit tests generator for Go programming language - ★ 14
-
Go Tools
- generator-go-lang - A teeny tiny and somewhat opinionated generator for your next golang project - ★ 6
- go-swagger - Swagger 2.0 implementation for go - ★ 2884
- richgo - Enrich `go test` outputs with text decorations. - ★ 305
- depth - Visualize Go Dependency Trees - ★ 268
- colorgo - Colorize (highlight) `go build` command output - ★ 94
- rts - RTS: request to struct. Generates Go structs from JSON server responses. - ★ 177
- go-pkg-complete - bash completion for go and wgo - ★ 37
- OctoLinker - OctoLinker – Available on Chrome, Firefox and Opera - ★ 3035
- go-callvis - Visualize call graph of a Go program using dot format. - ★ 1333
-
ORM
- beego - ★ 17708
- grimoire - Database access layer for golang. - ★ 28
- db - Productive data access layer for Go. - ★ 1383
- go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM. - ★ 79
- go-store - A simple and fast Redis backed key-value store library for Go - ★ 90
- gorp - Go Relational Persistence - an ORM-ish library for Go - ★ 2900
- lore - Light Object-Relational Environment (LORE) provides a simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go - ★ 4
- pop - A Tasty Treat For All Your Database Needs - ★ 505
- reform - A better ORM for Go, based on non-empty interfaces and code generation. - ★ 695
- zoom - A blazing-fast datastore and querying engine for Go built on Redis. - ★ 225
- xorm - Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - ★ 4008
- pg - Golang ORM with focus on PostgreSQL features and performance - ★ 2137
- gorm - The fantastic ORM library for Golang, aims to be developer friendly - ★ 11124
- qbs - QBS stands for Query By Struct. A Go ORM. - ★ 516
- marlow - golang generator for type-safe sql api constructs - ★ 35
- go-queryset - 100% type-safe ORM for Go (Golang) with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support. GORM under the hood. - ★ 358
- gomodel - A lightweight, fast, orm-like library helps interactive with database - ★ 59
- sqlboiler - Generate a Go ORM tailored to your database schema. - ★ 1663
-
Software Packages
- banshee - Anomalies detection system for periodic metrics. - ★ 996
- fac - Easy-to-use CUI for fixing git conflicts - ★ 1508
- shell2http - Executing shell commands via HTTP server - ★ 287
- gaia - Build powerful pipelines in any programming language. - ★ 2466
- restic - Fast, secure, efficient backup program - ★ 5477
- duplicacy - A new generation cloud backup tool - ★ 2383
- cherry - A tiny webchat server in Go. - ★ 176
- gitea - Git with a cup of tea, painless self-hosted git service - ★ 10772
- webhook - webhook is a lightweight configurable incoming webhook server which can execute shell commands - ★ 3315
- godbg - Web-based gdb front-end application - ★ 215
- gvm - Go Version Manager - ★ 3905
- moby - Moby Project - a collaborative project for the container ecosystem to assemble container-based systems - ★ 51034
- kubernetes - Production-Grade Container Scheduling and Management - ★ 43756
- tenyks - The Tenyks IRC bot. - ★ 166
- bombardier - Fast cross-platform HTTP benchmarking tool written in Go - ★ 1178
- ddns - Personal DDNS client with Digital Ocean Networking DNS as backend. - ★ 58
- godns - A dynamic DNS client tool, supports Cloudflare, DNSPod & HE.net, written in Go. - ★ 288
- jaydiff - A JSON diff utility - ★ 24
- liteide - LiteIDE is a simple, open source, cross-platform Go IDE. - ★ 4873
- lstags - Manipulate Docker images across different registries - ★ 192
- kala - Modern Job Scheduler - ★ 1274
- lgo - Interactive Go programming with Jupyter - ★ 1486
- community - Intelligent Document Environment (IDE) to author, track, deliver documentation - ★ 517
- sup - Super simple deployment tool - think of it like 'make' for a network of servers - ★ 1817
- circuit - Circuit: Dynamic cloud orchestration - ★ 1693
- bosun - Time Series Alerting Framework - ★ 2672
- hey - HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom - ★ 4281
- confd - Manage local application configuration files using templates and data from etcd or consul - ★ 5600
- vegeta - HTTP load testing tool and library. It's over 9000! - ★ 9543
- nes - NES emulator written in Go. - ★ 3821
- gox - A dead simple, no frills Go cross compile tool - ★ 2961
- kcli - A kafka command line browser - ★ 47
- goboy - Multi-platform Nintendo Game Boy Color emulator written in go - ★ 349
- dogo - Monitoring changes in the source file and automatically compile and run (restart). - ★ 197
- skm - A simple and powerful SSH keys manager - ★ 461
- mylg - Network Diagnostic Tool - ★ 2091
- peg - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. - ★ 527
- ostent - Ostent is a server tool to collect, display and report system metrics. - ★ 157
- statusok - Monitor your Website and APIs from your Computer. Get Notified through Slack, E-mail when your server is down or response time is more than expected. - ★ 1004
- snap - The open telemetry framework - ★ 1782
- mora - MongoDB generic REST server in Go - ★ 253
- go-metrics - Go port of Coda Hale's Metrics library - ★ 2123
- drone-scp - Copy files and artifacts via SSH using a binary, docker or Drone CI. - ★ 41
- joincap - Merge multiple pcap files together, gracefully. - ★ 106
- pewpew - Flexible HTTP command line stress tester for websites and web services - ★ 171
- manssh - Manage your ssh alias configs easily. - ★ 185
- go-selfupdate - Enable your Golang applications to self update - ★ 622
- goxc - a build tool for Go, with a focus on cross-compiling, packaging and deployment - ★ 1576
- scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker) - ★ 467
- toxiproxy - A TCP proxy to simulate network and system conditions for chaos and resiliency testing - ★ 3197
- comcast - Simulating shitty network connections so you can build better systems. - ★ 5838
- s3gof3r - Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI. - ★ 951
- Go-Package-Store - An app that displays updates for the Go packages in your GOPATH. - ★ 863
- aptly - aptly - Debian repository management tool - ★ 1634
- leaps - A pair programming service using operational transforms - ★ 615
- metrics - This is not the Java library. - ★ 431
- mockingjay-server - Fake server, Consumer Driven Contracts and help with testing performance from one configuration file with zero system dependencies and no coding whatsoever - ★ 371
- aurora - Cross-platform Beanstalk queue server console. - ★ 325
- gonative - Build Go Toolchains /w native libs for cross-compilation - ★ 298
- wellington - Spriting that sass has been missing - ★ 283
- ipe - An open source Pusher server implementation compatible with Pusher client libraries written in GO - ★ 240
- IDE - IDE for web browser, built for Go with Go. - ★ 235
- gocc - Parser / Scanner Generator - ★ 208
- gobrew - Shell script to download and set GO environmental paths to allow multiple versions. - ★ 174
- blast - Blast is a simple tool for API load testing and batch jobs - ★ 152
- grapes - easy way to distribute commands over ssh. - ★ 113
- orbit - A cross-platform task runner for executing commands and generating files from templates - ★ 113
- boxed - dropbox based blog engine, written in go. - ★ 70
- easyssh-proxy - easyssh-proxy provides a simple implementation of some SSH protocol features in Go - ★ 67
- go-furnace - Go Hosting Solution with CloudFormation and CodeDeploy - ★ 49
- winrm-cli - Command-line tool to remotely execute commands on Windows machines through WinRM - ★ 45
- dropship - Super simple deployment tool - ★ 42
- rodent - Manage Go Versions/Projects/Dependencies - ★ 31
- naclpipe - NaCL pipe - ★ 20
- awsenv - AWS environment config loader - ★ 16
- drone-jenkins - Drone plugin for trigger Jenkins jobs. - ★ 16
- snitch - Keep updated about all deploys on Tsuru - ★ 15
- term-quiz - Terminal Quiz Application Written in Go - ★ 14
- GoDocTooltip - A Chrome extension for golang users.When you're at golang's official doc site, it will show function's description as tooltip on function list - ★ 12
- depcharge - DepCharge is a tool designed to help orchestrate the execution of commands across many directories at once. - ★ 6
- lwc - A live-updating version of the UNIX wc command. - ★ 5
- sg - Stress gauge allows one to gauge response times of an HTTP service under stress. - ★ 3
- traefik - The Cloud Native Edge Router - ★ 18594
- rkt - rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards. - ★ 8290
- seaweedfs - SeaweedFS is a simple and highly scalable distributed file system. There are two objectives: to store billions of files! to serve the files fast! SeaweedFS implements an object store with O(1) disk seek, and an optional Filer with POSIX interface. - ★ 6807
- packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. - ★ 8164
- vflow - Enterprise Network Flow Collector (IPFIX, sFlow, Netflow) - ★ 465
- aptly - aptly - Debian repository management tool - ★ 1634
- orange-cat - A Markdown previewer written in Go - ★ 172
- goreplay - GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes. - ★ 9585
- borg - Search and save shell snippets without leaving your terminal - ★ 1380
- pipe - 一款小而美的 Go 博客平台。 - ★ 1583
- govvv - "go build" wrapper to add version info to Golang applications - ★ 285
-
Date and Time
- Kair - Date and Time - Golang Formatting Library - ★ 5
- carbon - Carbon for Golang, an extension for Time - ★ 263
- date - A Go package for working with dates - ★ 20
- dateparse - GoLang Parse many date strings without knowing format in advance. - ★ 738
- durafmt - Better time duration formatting in Go! - ★ 200
- feiertage - Gesetzliche Feiertage und mehr in Deutschland und Österreich (Bank holidays/public holidays in Austria and Germany) - ★ 15
- go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang) - ★ 38
- go-sunrise - Go package for calculating the sunrise and sunset times for a given location - ★ 8
- now - Now is a time toolkit for golang - ★ 1852
- nulltime - ★ 7
- strftime - C99-compatible strftime formatter for use with Go time.Time instances. - ★ 5
- timespan - Golang package to manipulate time intervals. - ★ 57
- timeutil - timeutil - useful extensions (Timedelta, Strftime, ...) to the golang's time package - ★ 150
- tuesday - Ruby-compatible strftime for golang - ★ 6
- goweek - ISO 8601 compatible library for working with week entities for Go - ★ 16
-
Embeddable Scripting Languages
- agora - a dynamically typed, garbage collected, embeddable programming language built with Go - ★ 308
- anko - Scriptable interpreter written in golang - ★ 777
- binder - High level go to Lua binder. Write less, do more. - ★ 21
- gisp - Simple LISP in Go - ★ 406
- go-duktape - Duktape JavaScript engine bindings for Go - ★ 608
- go-lua - A Lua VM in Go - ★ 1400
- go-php - PHP bindings for the Go programming language (Golang) - ★ 540
- go-python - naive go bindings to the CPython C-API - ★ 759
- golua - Go bindings for Lua C API - in progress - ★ 410
- gopher-lua - GopherLua: VM and compiler for Lua in Go - ★ 2408
- ngaro - An embeddable implementation of the Ngaro Virtual Machine for Go programs - ★ 15
- purl - Perl, but fluffy like a cat! - ★ 23
- otto - A JavaScript interpreter in Go (golang) - ★ 4178
- expr - Expr is an engine that can evaluate expressions. - ★ 210
- agora - a dynamically typed, garbage collected, embeddable programming language built with Go - ★ 308
-
Generation and Generics
- efaceconv - ★ 35
- jennifer - Jennifer is a code generator for Go - ★ 976
- go-enum - An enum generator for go - ★ 61
- goderive - Functional programming for Golang - ★ 626
- gowrap - GoWrap is a command line tool for generating decorators for Go interfaces - ★ 148
- interfaces - Code generation tools for Go. - ★ 144
- gen - Type-driven code generation for Go - ★ 939
- pkgreflect - A Go preprocessor for package scoped reflection - ★ 71
- go-linq - .NET LINQ capabilities in Go - ★ 1552
- efaceconv - ★ 35
-
Database
- prometheus - The Prometheus monitoring system and time series database. - ★ 20075
- pgweb - Cross-platform client for PostgreSQL databases - ★ 5370
- cache2go - Concurrency-safe Go caching library with expiration capabilities and access counters - ★ 684
- bigcache - Efficient cache for gigabytes of data written in Go. - ★ 1692
- tidb - TiDB is a distributed HTAP database compatible with the MySQL protocol - ★ 15803
- clusteredBigCache - golang bigcache with clustering as a library. - ★ 23
- couchcache - A RESTful caching micro-service in Go backed by Couchbase - ★ 38
- gcache - Cache library for golang. It supports expirable Cache, LFU, LRU and ARC. - ★ 560
- groupcache - groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - ★ 6850
- buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support - ★ 2131
- cockroach - CockroachDB - the open source, cloud-native SQL database. - ★ 14679
- CovenantSQL - A decentralized, peer-to-peer sharing economy, SQL database with Blockchain features. - ★ 353
- diskv - A disk-backed key-value store. - ★ 652
- eliasdb - EliasDB is a graph-based database. - ★ 494
- goleveldb - LevelDB key/value database in Go. - ★ 2578
- levigo - levigo is a Go wrapper for LevelDB - ★ 338
- moss - moss - a simple, fast, ordered, persistable, key-val storage library for golang - ★ 647
- piladb - Lightweight RESTful database engine based on stack data structures - ★ 165
- rqlite - The lightweight, distributed relational database built on SQLite. - ★ 4092
- tempdb - Key-value store for temporary items - ★ 13
- tiedot - Your NoSQL database powered by Golang - ★ 2236
- vasto - A distributed key-value store. On Disk. Able to grow or shrink without service interruption. - ★ 98
- darwin - Database schema evolution library for Go - ★ 71
- go-fixtures - Django style fixtures for Golang's excellent built-in database/sql library. - ★ 17
- go-pg-migrations - A Go package to help write migrations with go-pg/pg. - ★ 11
- gormigrate - Minimalistic database migration helper for Gorm ORM - ★ 207
- migrate - Database migrations. CLI and Golang library. - ★ 1105
- sql-migrate - SQL schema migration tool for Go. - ★ 1135
- clickhouse-bulk - Collects many small insterts to ClickHouse and send in big inserts - ★ 86
- prep - Prep finds all SQL statements in a Go package and instruments db connection with prepared statements - ★ 20
- rwdb - Database wrapper that manage read write connections - ★ 9
- gendry - a golang library for sql builder - ★ 453
- godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily (now only support mysql) - ★ 48
- goqu - SQL builder and query library for golang - ★ 456
- igor - igor is an abstraction layer for PostgreSQL with a gorm like syntax. - ★ 69
- ormlite - Lightweight package containing some ORM-like features and helpers for sqlite databases. - ★ 0
- ozzo-dbx - A Go (golang) package that enhances the standard database/sql package by providing powerful data retrieval methods as well as DB-agnostic query building capabilities. - ★ 273
- sqrl - Fluent SQL generation for golang - ★ 132
- squirrel - Fluent SQL generation for golang - ★ 1768
- goforestdb - Go bindings for ForestDB - ★ 29
- golang-scribble - A tiny Golang JSON database - ★ 16
- bolt - An embedded key/value database for Go. - ★ 9121
- leveldb - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. - ★ 15434
- kingshard - A high-performance MySQL proxy - ★ 3872
- goose - Go database migration tool - ★ 85
- pravasan - Simple Migration Tool - written in Go - ★ 22
- myreplication - Golang MySql binary log replication listener - ★ 122
- dat - Go Postgres Data Access Toolkit - ★ 543
- slowpoke - Package slowpoke implements a low-level key/value store in pure Go. Keys stored in memory (with persistence), values stored on disk. - ★ 65
- gondolier - Gondolier is a database migration library for Go. - ★ 20
- dgraph - Fast, Distributed Graph DB - ★ 6881
- badger - Fast key-value DB in Go. - ★ 4558
- ledisdb - a high performance NoSQL powered by Go - ★ 2741
- prest - pREST is a way to serve a RESTful API from any databases written in Go - ★ 1872
- go-mysql - a powerful mysql toolset with Go - ★ 1346
- go-mysql-elasticsearch - Sync MySQL data into elasticsearch - ★ 1786
- dotsql - A Golang library for using SQL. - ★ 383
- scaneo - Generate Go code to convert database rows into arbitrary structs. - ★ 136
- orchestrator - MySQL replication topology management and HA - ★ 2237
- gondolier - Gondolier is a database migration library for Go. - ★ 20
- gorocksdb - gorocksdb is a Go wrapper for RocksDB with additional features - ★ 6
- influxdb - Scalable datastore for metrics, events, and real-time analytics - ★ 14795
- vitess - Vitess is a database clustering system for horizontal scaling of MySQL. - ★ 6871
- xo - Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server - ★ 1799
- go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. - ★ 2077
- pop - ★ 505
- chproxy - ClickHouse http proxy and load balancer - ★ 178
-
Server Applications
- minio - Minio is an open source object storage server compatible with Amazon S3 APIs - ★ 13532
- jackal - An XMPP server written in Go (Golang). - ★ 513
- devd - A local webserver for developers - ★ 2639
- algernon - Small self-contained web server with Lua, Markdown, QUIC, Redis and PostgreSQL support - ★ 483
- discovery - A registry for resilient mid-tier load balancing and failover. - ★ 302
- fider - Open platform to collect and prioritize product feedback - ★ 533
- roadrunner - High-performance PHP application server, load-balancer and process manager written in Golang - ★ 1761
- etcd - Distributed reliable key-value store for the most critical data of a distributed system - ★ 21176
- flagr - Flagr is a feature flagging, A/B testing and dynamic configuration microservice - ★ 480
- caddy - Fast, cross-platform HTTP/2 web server with automatic HTTPS - ★ 19118
-
Utilities
- fzf - A command-line fuzzy finder - ★ 17880
- gtm - Simple, seamless, lightweight time tracking for Git - ★ 616
- gjson - Get JSON values quickly - JSON Parser for Go - ★ 3575
- wuzz - Interactive cli tool for HTTP inspection - ★ 7729
- godropbox - Common libraries for writing Go services/applications. - ★ 3610
- gorequest - GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) - ★ 1963
- goreleaser - Deliver Go binaries as fast and easily as possible - ★ 3458
- resty - Simple HTTP and REST client library for Go - ★ 1356
- panicparse - Crash your app in style (Golang) - ★ 1799
- gaper - Builds and restarts a Go project when it crashes or some watched file changes - ★ 29
- mmake - Modern Make - ★ 1431
- task - A task runner / simpler Make alternative written in Go - ★ 1040
- spinner - Go (golang) package for providing a terminal spinner/progress indicator with options. - ★ 609
- fpGo - Monad, Functional Programming features for Golang - ★ 56
- go-underscore - Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. - ★ 979
- go-cron - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. - ★ 168
- gron - gron, Cron Jobs in Go. - ★ 530
- jobrunner - Framework for performing work asynchronously, outside of the request flow - ★ 488
- scheduler - Job scheduling made easy. - ★ 249
- go-respond - A Go package for handling common HTTP JSON responses. - ★ 13
- gojq - JSON query in Golang - ★ 128
- gojson - Automatically generate Go (golang) struct definitions from example JSON - ★ 1837
- jsonapi-errors - Go bindings based on the JSON API errors reference - ★ 4
- jsonf - Console JSON formatter with query feature - ★ 53
- jsongo - Fluent API to make it easier to create Json objects. - ★ 83
- jsonhal - A simple Go package to make custom structs marshal into HAL compatible JSON responses. - ★ 8
- kazaam - Arbitrary transformations of JSON in Golang - ★ 96
- mp - Simple Email Parser - ★ 29
- go-excel - A simple and light excel file reader to read a standard excel as a table faster | 一个轻量级的Excel数据读取库,用一种更`关系数据库`的方式解析Excel。 - ★ 29
- goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX files - ★ 12
- xlsx - Google Go (golang) library for reading and writing XLSX files. You should probably also checkout: - ★ 2789
- xlsx - Fast and safe way to read/update your existing Excel xlsx files - ★ 26
- gentleman - Full-featured, plugin-oriented, extensible HTTP client toolkit for Go - ★ 567
- grequests - A Go "clone" of the great and famous Requests library - ★ 1173
- pester - Go (golang) http calls with retries and backoff - ★ 281
- rq - A nicer interface for golang stdlib HTTP client - ★ 23
- sling - A Go HTTP client library for creating and sending API requests - ★ 751
- profile - Simple profiling for Go - ★ 827
- apm - APM is a process manager for Golang applications. - ★ 117
- backscanner - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. - ★ 6
- boilr - boilerplate template manager that generates files or directories from template repositories - ★ 793
- chyle - Changelog generator : use a git repository and various data sources and publish the result on external services - ★ 95
- circuit - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. - ★ 50
- circuitbreaker - Circuit Breakers in Go - ★ 693
- command - Command pattern for Go with thread safe serial and parallel dispatcher - ★ 9
- copy-pasta - Universal copy paste service, works across different machines! - ★ 30
- ctop - Top-like interface for container metrics - ★ 7582
- ctxutil - utils for Go context - ★ 0
- death - Managing go application shutdown with signals. - ★ 103
- deepcopier - simple struct copying for golang - ★ 174
- delve - Delve is a debugger for the Go programming language. - ★ 9714
- dlog - Simple build-time controlled debug log with ability to log where the logger was called - ★ 15
- ergo - The management of multiple local services running on different ports made easy - ★ 235
- evaluator - ★ 10
- filetype - Small and blazing fast package to infer file types checking the magic numbers signature in pure Go - ★ 380
- filler - fill struct data easily with fill tags - ★ 14
- filter - Provide filtering, sanitizing, and conversion of Golang data. 提供对Golang数据的过滤,净化,转换。 - ★ 4
- generate - runs go generate recursively on a specified path or environment variable and can filter by regex - ★ 12
- go-astitodo - Parse TODOs in your GO code - ★ 40
- go-bind-plugin - go-bind-plugin generates API for exported plugin symbols (-buildmode=plugin) - go1.8+ only ( ) - ★ 158
- go-dry - DRY (don't repeat yourself) package for Go - ★ 413
- go-funk - A modern Go utility library which provides helpers (map, find, contains, filter, ...) - ★ 589
- go-health - Health check your applications and dependencies - ★ 57
- go-httpheader - A Go library for encoding structs into Header fields. - ★ 14
- sqlx - general purpose extensions to golang's database/sql - ★ 5229
- htcat - Parallel and Pipelined HTTP GET Utility - ★ 461
- peco - Simplistic interactive filtering tool - ★ 4940
- minquery - MongoDB / mgo query that supports efficient pagination (cursors to continue listing documents where we left off). - ★ 42
- minify - Go minifiers for web formats - ★ 1594
- rerun - Configurable recompiling and rerunning go apps when source changes - ★ 150
- storm - Simple and powerful toolkit for BoltDB - ★ 1148
- mc - Minio Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage. - ★ 859
- hystrix-go - Netflix's Hystrix latency and fault tolerance library, for Go - ★ 1422
- mimetype - A golang library for detecting mime types and extensions based on magic numbers - ★ 42
- retry - Functional mechanism based on channels to perform actions repetitively until successful. - ★ 65
- gotenv - Load environment variables dynamically in Go. - ★ 111
- toolbox - Toolbox - go utility library - ★ 40
- immortal - ⭕ A *nix cross-platform (OS agnostic) supervisor - ★ 542
- util - A collection of useful utility functions - ★ 89
- go-sitemap-generator - go-sitemap-generator is the easiest way to generate Sitemaps in Go - ★ 86
- gopencils - Easily consume REST APIs with Go (golang) - ★ 414
- go-rate - A timed rate limiter for Go - ★ 271
- onecache - One caching API, Multiple backends - ★ 79
- netbug - Package netbug provides a handler for registering profilers on your own ServeMux. - ★ 65
- moldova - A lightweight templating system for generating random data - ★ 147
- goseaweedfs - A complete Golang client for SeaweedFS - ★ 15
- request - A developer-friendly HTTP request library for Gopher. - ★ 327
- goreq - Minimal and simple request library for Go language - ★ 690
- httpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries. - ★ 475
- godaemon - Daemonize Go applications deviously. - ★ 375
- gohper - common libs here. - ★ 246
- go-trigger - A Global event triggerer for golang. Defines functions as event with id string. Trigger the event anywhere from your project. - ★ 157
- robustly - Run functions resiliently in Go, catching and restarting panics - ★ 129
- lrserver - LiveReload server for Go [golang] - ★ 96
- goreq - A Simplified Golang Http Client - ★ 83
- unis - UNIS: A Common Architecture for String Utilities within the Go Programming Language. - ★ 67
- xferspdy - Xferspdy provides binary diff and patch library in golang. (Also added to ) - ★ 63
- pm - Processlist manager with TCP listener - ★ 61
- multitick - A multiplexor for aligned time.Time tickers in Go - ★ 57
- repeat - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - ★ 51
- abutil - [UNMAINTAINED] A collection of often-used Golang helpers - ★ 48
- mssqlx - Database client library, proxy for any master slave, master master structures. Lightweight, performant and auto balancing in mind. - ★ 47
- golog - Easy and simple CLI time tracker for your tasks - ★ 41
- goback - Golang simple exponential backoff package. - ★ 38
- clockwork - A simple and intuitive scheduling library in Go. - ★ 34
- intrinsic - Provide Golang native SIMD intrinsics on x86/amd64 platform - ★ 34
- golarm - Fire alarms with system events - ★ 32
- mimemagic - Powerful and versatile MIME sniffing package using pre-compiled glob patterns, magic number signatures, XML document namespaces, and tree magic for mounted volumes, generated from the XDG shared-mime-info database. - ★ 29
- myhttp - Simplest HTTP GET requester for Go with timeout support - ★ 27
- retry - Simple and easy retry mechanism package for Go - ★ 27
- gpath - gpath is a Go package to access a field by a path using reflect pacakge - ★ 25
- retry-go - Retrying made simple and easy for golang - ★ 24
- rclient - Minimalistic REST client for Go applications - ★ 21
- goplaceholder - a small golang lib to generate placeholder images - ★ 20
- ugo - Simple and expressive toolbox written in Go - ★ 19
- okrun - ok, run your gofile - ★ 13
- rerate - redis-based rate counter and rate limiter - ★ 11
- fastlz - Wrap over FastLz for GoLang - ★ 10
- structs - Golang struct operations. - ★ 8
- retry - A pretty simple library to ensure your work to be done - ★ 7
- retry - Percolate's Go retry package - ★ 2
- usql - universal command-line interface for SQL databases - ★ 4395
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files. - ★ 2668
- realize - Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading. - ★ 2573
- goreporter - A Golang tool that does static analysis, unit testing, code review and generate code quality report. - ★ 2233
- httpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries. - ★ 475
- go-torch - Stochastic flame graph profiler for Go programs - ★ 3351
- hub - hub helps you win at git. - ★ 13989
- mergo - Mergo: merging Go structs and maps since 2013. - ★ 616
-
GUI
- fyne - Cross platform GUIs in Go based on EFL - ★ 199
- go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) - ★ 2062
- robotgo - RobotGo, Go Native cross-platform GUI automation - ★ 3561
- go-sciter - Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development - ★ 1202
- gotk3 - Go bindings for GTK3 - ★ 548
- gowd - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs) - ★ 149
- qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly - ★ 4766
- ui - Platform-native GUI library for Go. - ★ 6118
- walk - A Windows GUI toolkit for the Go Programming Language - ★ 2987
- gosx-notifier - gosx-notifier is a Go framework for sending desktop notifications to OSX 10.8 or higher - ★ 459
- systray - a cross platfrom Go library to place an icon and menu in the notification area - ★ 551
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar. - ★ 136
- app - Package to build GUI apps with Go, HTML and CSS. - ★ 2527
- webview - Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and MSHTML (Windows) - ★ 3073
-
Science and Data Analysis
- stats - A statistics package with common functions that are missing from the Golang standard library. - ★ 943
- GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. - ★ 6
- chart - Provide basic charts in go - ★ 519
- dataframe-go - DataFrame for statistics and data manipulation - ★ 20
- evaler - Implements a simple floating point arithmetic expression evaluator in Go (golang). - ★ 33
- ewma - Exponentially Weighted Moving Average algorithms for Go. - ★ 241
- geom - 2d geometry for golang - ★ 36
- go-gt - Automatically exported from code.google.com/p/go-gt - ★ 4
- goent - GO Implementation of Entropy Measures - ★ 10
- gohistogram - Streaming approximate histograms in Go - ★ 112
- plot - A repository for plotting and visualizing data - ★ 973
- goraph - Package goraph implements graph data structure and algorithms. - ★ 535
- gosl - Go scientific library for machine learning, linear algebra, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, graph, plotting, visualisation, tensors, eigenvalues, differential equations, more. - ★ 1168
- graph - Graph algorithms and data structures - ★ 171
- ode - An ordinary differential equation solving library in golang. - ★ 7
- orb - Types and utilities for working with 2d geometry in Golang - ★ 61
- pagerank - Weighted PageRank implementation in Go - ★ 41
- piecewiselinear - tiny linear interpolation library for go (factored out from ) - ★ 5
- PiHex - PiHex Library, written in Go, generates a hexadecimal number sequence in the number Pi in the range from 0 to 10,000,000. - ★ 4
- sparse - Sparse matrix formats for linear algebra supporting scientific and machine learning applications - ★ 45
- streamtools - tools for working with streams of data - ★ 1311
- TextRank - TextRank implementation in Golang with extendable features (summarization, phrase extraction) and multithreading (goroutine) support (Go 1.8, 1.9, 1.10) - ★ 53
- triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. - ★ 7
- matrix - Matrix packages for the Go language [DEPRECATED] - ★ 460
- blas - Go implementation of BLAS (Basic Linear Algebra Subprograms) - ★ 124
- go-fn - Automatically exported from code.google.com/p/go-fn - ★ 10
- gocomplex - Automatically exported from code.google.com/p/gocomplex - ★ 4
- go-dsp - Digital Signal Processing for Go - ★ 555
-
Messaging
- gorush - A push notification server written in Go (Golang). - ★ 3032
- go-socket.io - socket.io library for golang, a realtime application framework. - ★ 2434
- apns2 - ⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol. - ★ 1871
- centrifugo - Language-agnostic real-time messaging server (Websocket and SockJS) - ★ 3104
- dbus - Native Go bindings for D-Bus - ★ 285
- drone-line - Sending line notifications using a binary, docker or Drone CI. - ★ 52
- emitter - Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins - ★ 251
- event - The implementation of the pattern observer - ★ 16
- EventBus - [Go] Lightweight eventbus with async compatibility for Go - ★ 443
- gaurun-client - Gaurun Client written in Go - ★ 7
- glue - Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io) - ★ 292
- go-notify - Package notify provides an implementation of the Gnome DBus Notifications Specification. - ★ 38
- go-nsq - The official Go package for NSQ - ★ 1218
- go-vitotrol - golang client library to Viessmann Vitotrol web service - ★ 10
- gollum - An n:m message multiplexer written in Go - ★ 632
- golongpoll - golang long polling library. Makes web pub-sub easy via HTTP long-poll server - ★ 381
- gopush-cluster - Golang push server cluster - ★ 1745
- guble - websocket based messaging server written in golang - ★ 133
- hub - A fast Message/Event Hub using publish/subscribe pattern with support for topics like* rabbitMQ exchanges for Go applications - ★ 12
- machinery - Machinery is an asynchronous task queue/job queue based on distributed message passing. - ★ 2675
- melody - Minimalist websocket framework for Go - ★ 1187
- mercure - Server-sent live updates: protocol and reference implementation - ★ 359
- message-bus - Go simple async message bus - ★ 25
- nsq-event-bus - A tiny wrapper around NSQ topic and channel - ★ 39
- oplog - A generic oplog/replication system for microservices - ★ 91
- rabbus - A tiny wrapper over amqp exchanges and queues - ★ 46
- rabtap - RabbitMQ wire tap and swiss army knife - ★ 33
- RapidMQ - RapidMQ is a pure, extremely productive, lightweight and reliable library for managing of the local messages queue - ★ 47
- uniqush-push - Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices. - ★ 1028
- zmq4 - A Go interface to ZeroMQ version 4 - ★ 696
- goose - Server-Sent Events in Go - ★ 34
- zmq3 - A Go interface to ZeroMQ version 3 - ★ 127
- go-gcm - GCM library for Go. - ★ 102
- zmq2 - A Go interface to ZeroMQ version 2 - ★ 17
- benthos - A dull, resilient and quick to deploy stream processor - ★ 1618
- sarama - Sarama is a Go library for Apache Kafka 0.8, and up. - ★ 3596
- go-nats - Golang client for NATS, the cloud native messaging system. - ★ 1926
- pubsub - A simple pubsub package for go. - ★ 225
- go-gcm - GCM library for Go. - ★ 102
- mangos - package mangos is an implementation in pure Go of the SP ("Scalable Protocols") protocols. - ★ 1478
-
Email
- hermes - Golang package that generates clean, responsive HTML e-mails for sending transactional mail - ★ 1366
- MailHog - Web and API based SMTP testing - ★ 4026
- douceur - A simple CSS parser and inliner in Go - ★ 135
- email - Robust and flexible email library for Go - ★ 951
- go-dkim - DKIM package for golang - ★ 45
- go-imap - An IMAP library for clients and servers - ★ 545
- go-message - A streaming Go library for the Internet Message Format and mail messages - ★ 70
- hectane - Lightweight SMTP client written in Go - ★ 158
- sendgrid-go - The Official SendGrid Led, Community Driven Golang API Library - ★ 419
- smtp - MailHog SMTP Protocol - ★ 48
- gomail - The best way to send emails in Go. - ★ 1939
-
Template Engines
- gofpdf - A PDF document generator with high level support for text, drawing and images - ★ 2580
- pongo2 - Django-syntax like template-engine for Go - ★ 1336
- amber - Amber is an elegant templating engine for Go Programming Language, inspired from HAML and Jade - ★ 798
- ego - An ERB-style templating language for Go. - ★ 391
- extemplate - Wrapper package for Go's template/html to allow for easy file-based template inheritance. - ★ 5
- fasttemplate - Simple and fast template engine for Go - ★ 226
- jet - Jet template engine - ★ 515
- liquid - A complete Liquid template engine in Go - ★ 68
- quicktemplate - Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template - ★ 1142
- raymond - Handlebars for golang - ★ 292
- gorazor - Razor view engine for Golang - ★ 641
- soy - Go implementation for Soy templates (Google Closure templates) - ★ 132
- mustache - The mustache template language in Go - ★ 945
- ace - HTML template engine for Go - ★ 730
- hero - A handy, fast and powerful go template engine. - ★ 1069
- kasia.go - Templating system for HTML and other text documents - go implementation - ★ 70
- velvet - A sweet velvety templating package - ★ 62
- damsel - Package damsel provides html outlining via css-selectors and common template functionality. - ★ 20
-
Database Drivers
- riot - Go Open Source, Distributed, Simple and efficient Search Engine - ★ 4068
- bleve - A modern text indexing library for go - ★ 4721
- dsc - Datastore Connectivity in go - ★ 6
- calcite-avatica-go - Mirror of Apache Calcite - Avatica Go SQL Driver - ★ 19
- bgc - Datastore Connectivity for BigQuery in go - ★ 9
- firebirdsql - Firebird RDBMS sql driver for Go (golang) - ★ 89
- go-adodb - Microsoft ActiveX Object DataBase driver for go that using exp/sql - ★ 84
- go-mssqldb - Microsoft SQL server driver written in go language - ★ 836
- go-oci8 - oracle driver for go that using database/sql - ★ 335
- mysql - Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package - ★ 6411
- go-sqlite3 - sqlite3 driver for go using database/sql - ★ 2845
- gofreetds - Go Sql Server database driver. - ★ 77
- pgx - PostgreSQL driver and toolkit for Go - ★ 1539
- pq - Pure Go Postgres driver for database/sql - ★ 4345
- aerospike-client-go - Aerospike Client Go - ★ 285
- arangolite - Lightweight Golang driver for ArangoDB - ★ 65
- asc - Datastore Connectivity for Aerospike for go - ★ 4
- go-couchbase - Couchbase client in Go - ★ 282
- gocb - The Couchbase Go SDK - ★ 271
- godscache - An unofficial Google Cloud Platform Go Datastore wrapper that adds caching using memcached. For App Engine Flexible, Compute Engine, Kubernetes Engine, and more. - ★ 3
- goriak - goriak - Go language driver for Riak KV - ★ 23
- mgo - The MongoDB driver for Go - ★ 1216
- mongo-go-driver - The Go driver for MongoDB - ★ 1127
- neo4j - Neo4j Rest API Client for Go lang - ★ 24
- Neo4j-GO - Neo4j REST Client in golang - ★ 70
- neoism - Neo4j client for Golang - ★ 344
- redeo - High-performance framework for building redis-protocol compatible TCP servers/services - ★ 227
- redigo - Go client for Redis - ★ 5145
- xredis - Go Redis Client - ★ 9
- elastic - Elasticsearch client for Go. - ★ 3117
- elasticsql - convert sql to elasticsearch DSL in golang(go) - ★ 233
- elastigo - A Go (golang) based Elasticsearch client library. - ★ 923
- goes - A library to interact with Elasticsearch in Go! - ★ 24
- skizze - A probabilistic data structure service and storage - ★ 55
- redis - A simple, powerful Redis client for Go - ★ 576
- dynago - A DynamoDB client for Go - ★ 60
- go-couchdb - Yet another CouchDB HTTP API wrapper for Go - ★ 50
- goracle - Oracle driver for Go, using the ODPI-C driver - ★ 137
- gomemcache - Go Memcached client library #golang - ★ 976
- rethinkdb-go - Go language driver for RethinkDB - ★ 1385
- cayley - An open-source graph database - ★ 11895
- redis - Type-safe Redis client for Golang - ★ 4444
- cachego - Golang Cache component - Multiple drivers - ★ 97
-
Geographic
- tile38 - Tile38 is a geospatial database, spatial index, and realtime geofence. - ★ 5000
- geoserver - geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API. - ★ 13
- gismanager - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver - ★ 0
- osm - General purpose library for reading, writing and working with OpenStreetMap data - ★ 27
- pbf - OpenStreetMap PBF golang parser - ★ 9
- geo - S2 geometry library in Go - ★ 746
- geocache - Geocache is an in-memory cache that is suitable for geolocation based applications. - ★ 93
-
Authentication and OAuth
- jwt-go - Golang implementation of JSON Web Tokens (JWT) - ★ 4460
- tornado - Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. - ★ 16773
- authboss - The boss of http auth. - ★ 1592
- cookiestxt - cookiestxt implement parser of cookies txt format - ★ 1
- gologin - Go login handlers for authentication providers (OAuth1, OAuth2) - ★ 927
- gorbac - goRBAC provides a lightweight role-based access control (RBAC) implementation in Golang. - ★ 779
- goth - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications. - ★ 1922
- jwt - JSON Web Token library - ★ 14
- jwt-auth - This package provides json web token (jwt) middleware for goLang http servers - ★ 132
- oauth2 - Go OAuth2 - ★ 1899
- paseto - Platform-Agnostic Security Tokens implementation in GO (Golang) - ★ 154
- permissions2 - Middleware for keeping track of users, login states and permissions - ★ 284
- securecookie - Fast, secure and efficient secure cookie encoder/decoder - ★ 24
- session - Go session management for web servers (including support for Google App Engine - GAE). - ★ 74
- sessions - A dead simple, highly performant, highly customizable sessions middleware for go http servers. - ★ 36
- branca - Secure alternative to JWT. Authenticated Encrypted API Tokens for Go. - ★ 33
- go-jose - An implementation of JOSE standards (JWE, JWS, JWT) in Go - ★ 972
- go-oauth2-server - A standalone, specification-compliant, OAuth2 server written in Golang. - ★ 1005
- httpauth - HTTP Authentication middlewares - ★ 157
- jwt - This is an implementation of JWT in golang! - ★ 50
- rbac - Minimalistic RBAC package for Go applications - ★ 16
- sessiongate-go - Driver for the SessionGate Redis module for easy session management in the Go language. - ★ 5
- signedvalue - Compatibility layer for tornado's signed values (and secure cookies consequently) - ★ 5
- osin - Golang OAuth2 server library - ★ 1
- yubigo - Yubigo is a Yubikey client API library that provides an easy way to integrate the Yubico Yubikey into your existing Go-based user authentication infrastructure. - ★ 94
- loginsrv - JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, .. - ★ 647
- casbin - An authorization library that supports access control models like ACL, RBAC, ABAC in Golang - ★ 3200
- go-aws-auth - [DEPRECATED] Signs requests to Amazon Web Services (AWS) using IAM roles or signed signature versions 2, 3, and 4. Supports S3 and STS. - ★ 215
-
Networking
- utp - Use anacrolix/go-libutp instead - ★ 139
- dns - DNS library in Go - ★ 3171
- gobgp - BGP implemented in the Go Programming Language - ★ 1430
- jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet. - ★ 101
- arp - Package arp implements the ARP protocol, as described in RFC 826. MIT Licensed. - ★ 155
- buffstreams - A library to simplify writing applications using TCP sockets to stream protobuff messages - ★ 213
- canopus - CoAP Client/Server implementing RFC 7252 for the Go Language - ★ 120
- cidranger - Fast IP to CIDR lookup in Golang - ★ 301
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. MIT Licensed. - ★ 52
- ether - A Go package for sending and receiving ethernet frames. Currently supporting Linux, Freebsd, and OS X. - ★ 57
- ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed. - ★ 161
- fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http - ★ 7359
- fortio - Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. - ★ 514
- ftp - FTP client package for Go - ★ 395
- gnxi - gNXI Tools - gRPC Network Management/Operations Interface Tools - ★ 70
- go-getter - Package for downloading things from a string URL using a variety of protocols. - ★ 570
- go-stun - A go implementation of the STUN client (RFC 3489 and RFC 5389) - ★ 273
- golibwireshark - ★ 12
- gopacket - Provides packet processing capabilities for Go - ★ 2279
- gopcap - A simple wrapper around libpcap for the Go programming language - ★ 329
- goshark - ★ 7
- gotcp - A Go package for quickly building tcp servers - ★ 370
- graval - An experimental go FTP server framework - ★ 23
- kcp-go - A Production-Grade Reliable-UDP Library for golang - ★ 1746
- kcptun - A Stable & Secure Tunnel Based On KCP with N:M Multiplexing - ★ 9003
- lhttp - go websocket, a better way to buid your IM server - ★ 448
- linkio - Simulate network link speed - ★ 36
- llb - ★ 7
- mdns - Simple mDNS client/server library in Golang - ★ 453
- packet - Send network packets over a TCP or UDP connection. - ★ 7
- peerdiscovery - Pure-Go library for cross-platform local peer discovery using UDP multicast - ★ 300
- portproxy - TCP proxy, highjacks HTTP to allow CORS - ★ 37
- publicip - Go pkg for returning your public facing IP address. - ★ 16
- raw - Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed. - ★ 238
- sftp - SFTP support for the go.crypto/ssh package - ★ 575
- ssh - Easy SSH servers in Golang - ★ 862
- sslb - Golang Super Simple Load Balance - ★ 107
- tcp_server - golang tcp server - ★ 228
- tspool - tcp server pool - ★ 0
- water - A simple TUN/TAP library written in native Go. - ★ 677
- winrm - Command-line tool and library for Windows remote command execution in Go - ★ 179
- xtcp - A TCP Server Framework with graceful shutdown, custom protocol. - ★ 48
- gosnmp - An SNMP library written in GoLang. - ★ 366
- httplab - The interactive web server - ★ 3225
- stun - Fast RFC 5389 STUN implementation in go - ★ 153
- quic-go - A QUIC implementation in pure go - ★ 1831
- nff-go - NFF-Go -Network Function Framework for GO (former YANFF) - ★ 536
- grab - A download manager package for Go - ★ 410
-
Package Management
- dep - Go dependency management tool - ★ 10939
- glide - Package Management for Golang - ★ 7239
- godep - dependency tool for go - ★ 5529
- gom - Go Manager - bundle for go - ★ 1339
- gop - Manage dependencies and build Go projects outside GOPATH - ★ 47
- gopm - Go Package Manager (gopm) is a package manager and build tool for Go. - ★ 2017
- govendor - Go vendor tool that works with the standard vendor file. - ★ 4023
- gpm - Barebones dependency manager for Go. - ★ 1201
- johnny-deps - Barebones dependency manager for Go. - ★ 213
- VenGO - Create and manage Isolated Virtual Environments for Go - ★ 111
- gvt - gvt was a minimal go vendoring tool, based on gb-vendor. Today, you want to use modules instead. - ★ 754
- goop - A simple dependency manager for Go (golang), inspired by Bundler. - ★ 774
- nut - Vendor Go dependencies - ★ 247
- gigo - GIGO: PIP for GO - ★ 196
-
Goroutines
- workerpool - Concurrency limiting goroutine pool - ★ 51
- ants - A high-performance goroutine pool for go - ★ 930
- async - A safe way to execute functions asynchronously, recovering them in case of panic. It also provides an error stack aiming to facilitate fail causes discovery. - ★ 11
- cyclicbarrier - CyclicBarrier golang implementation - ★ 20
- go-floc - Floc: Orchestrate goroutines with ease. - ★ 160
- go-flow - Simply way to control goroutines execution order based on dependencies - ★ 86
- go-trylock - TryLock support on read-write lock for Golang - ★ 4
- goworker - goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers. - ★ 2067
- grpool - Lightweight Goroutine pool - ★ 428
- parallel-fn - Run functions in parallel - ★ 20
- pool - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation - ★ 402
- semaphore - Semaphore pattern implementation with timeout of lock/unlock operations based on channels. - ★ 36
- semaphore - Fast resizable golang semaphore - ★ 44
- stl - Software Transactional Locks - ★ 5
- threadpool - Golang simple thread pool implementation - ★ 6
- tunny - A goroutine pool for Go - ★ 957
- worker-pool - Go simple async worker pool - ★ 19
- artifex - Simple in-memory job queue for Golang using worker-based dispatching - ★ 1
- GoSlaves - Fast asynchonous goroutine pool for Golang - ★ 48
-
Serialization
- go - idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go] - ★ 1034
- bambam - auto-generate capnproto schema from your golang source files. Depends on go-capnproto-1.0 at - ★ 59
- colfer - binary serialization format - ★ 408
- csvutil - csvutil provides fast and idiomatic mapping between CSV and Go (golang) values. - ★ 246
- fwencoder - Fixed width file parser (encoder/decoder) in GO (golang) - ★ 6
- go-capnproto - Cap'n Proto library and parser for go. This is go-capnproto-1.0, and does not have rpc. See for 2.0 which has rpc and capabilities. - ★ 266
- protobuf - Protocol Buffers for Go with Gadgets - ★ 2130
- protobuf - Go support for Google's protocol buffers - ★ 3671
- go - A high-performance 100% compatible drop-in replacement of "encoding/json" - ★ 3836
- mapstructure - Go library for decoding generic map values into native Go structures. - ★ 1790
- php_session_decoder - PHP session encoder/decoder written in Go - ★ 101
- structs - Utilities for Go structs - ★ 2496
- asn1 - Asn.1 BER and DER encoding library for golang. - ★ 33
- structomap - Easily and dynamically generate maps from Go static structures - ★ 77
-
Natural Language Processing
- jieba - 结巴中文分词 - ★ 15903
- getlang - Natural language detection package in pure Go - ★ 32
- whatlanggo - Natural language detection library for Go - ★ 304
- go-stem - Word Stemming in Go - ★ 49
- go2vec - Read and use word2vec vectors in Go - ★ 30
- golibstemmer - Go bindings for the snowball libstemmer library including porter 2 - ★ 15
- kagome - Self-contained Japanese Morphological Analyzer written in pure Go - ★ 335
- libtextcat - Cgo binding for libtextcat C library - ★ 10
- nlp - [UNMANTEINED] Extract values from strings and fill your structs with nlp. - ★ 349
- nlp - Selected Machine Learning algorithms for natural language processing and semantic analysis in Golang - ★ 168
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm - ★ 24
- porter - porter stemmer - ★ 8
- snowball - Cgo binding for Snowball C library - ★ 21
- gojieba - "结巴"中文分词的Golang版本 - ★ 659
- gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) - ★ 2
- gse - Go efficient text segmentation; support english, chinese, japanese and other. Go 语言高性能分词 - ★ 615
- MMSEGO - Chinese word splitting algorithm MMSEG in GO - ★ 57
- prose - A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction. - ★ 1811
- segment - A Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29 - ★ 43
- sentences - A multilingual command line sentence tokenizer in Golang - ★ 240
- shamoji - The shamoji (杓文字) is word filtering package - ★ 9
- stemmer - Stemmer packages for Go programming language. Includes English, German and Dutch stemmers. - ★ 41
- textcat - A Go package for n-gram based text categorization, with support for utf-8 and raw text - ★ 58
- mystem - CGo bindings to Yandex.Mystem - ★ 19
- go-pinyin - 汉字转拼音 - ★ 395
- go-unidecode - ASCII transliterations of Unicode text. - ★ 35
- gounidecode - Unicode transliterator for #golang - ★ 59
- when - A natural language date/time parser with pluggable rules - ★ 891
- petrovich - Golang port of Petrovich - an inflector for Russian anthroponyms. - ★ 16
- icu - Cgo binding for icu4c library - ★ 17
- go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work - ★ 76
- go-eco - Automatically exported from code.google.com/p/go-eco - ★ 4
- porter2 - High Performance Porter2 Stemmer - ★ 32
- go-i18n - Translate your Go program into multiple languages. - ★ 760
- RAKE.Go - A Go port of the Rapid Automatic Keyword Extraction algorithm (RAKE) - ★ 34
-
Images
- smartcrop - smartcrop finds good image crops for arbitrary crop sizes - ★ 1180
- bild - A collection of parallel image processing algorithms in pure Go - ★ 1848
- bimg - Small Go package for fast high-level image processing powered by libvips C library - ★ 612
- cameron - An avatar generator for Go. - ★ 9
- geopattern - Create beautiful generative image patterns from a string in golang. - ★ 967
- gg - Go Graphics - 2D rendering in Go with a simple API. - ★ 1542
- gift - Go Image Filtering Toolkit - ★ 1131
- go-cairo - Go binding for the cairo graphics library - ★ 79
- go-gd - Go bingings for GD ( ) - ★ 47
- go-nude - Nudity detection with Go. - ★ 268
- go-webcolors - Port of webcolors library from Python to Go - ★ 24
- gocv - Go package for computer vision using OpenCV 3+ and beyond. - ★ 1688
- goimagehash - Go Perceptual image hashing package - ★ 145
- govatar - Avatar generator library for GO language - ★ 266
- image2ascii - Convert image to ASCII - ★ 199
- imagick - Go binding to ImageMagick's MagickWand C API - ★ 810
- imaginary - Fast, simple, scalable HTTP microservice for high-level image processing with first-class Docker support - ★ 2033
- imaging - Imaging is a simple image processing package for Go - ★ 1967
- img - A selection of image manipulation tools - ★ 125
- ln - 3D line art engine. - ★ 2299
- mergi - Imaging 4 terminal lovers (merge, crop, resize, watermark, animate) - ★ 34
- mort - Storage and image processing server written in Go - ★ 335
- mpo - JPEG-MPO Decoder / Converter Library and CLI Tool - ★ 4
- picfit - An image resizing server written in Go - ★ 900
- pt - A path tracer written in Go. - ★ 1662
- rez - Image resizing in pure Go and SIMD - ★ 155
- steganography - Pure Golang Library that allows simple LSB steganography on images - ★ 10
- svgo - Go Language Library for SVG generation - ★ 1169
- tga - Go package for decoding and encoding TARGA image format - ★ 19
- resize - Pure golang image resizing - ★ 1927
- go-opencv - Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv - ★ 992
-
Audio and Music
- flac - Package flac provides access to FLAC (Free Lossless Audio Codec) streams. - ★ 78
- gaad - GAAD (Go Advanced Audio Decoder) - ★ 49
- gosamplerate - Go Bindings for libsamplerate - ★ 7
- malgo - Mini audio library - ★ 41
- minimp3 - Decode mp3 base on - ★ 15
- portaudio - Go bindings for the PortAudio audio I/O library - ★ 222
- EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF) - ★ 15
- go-sox - libsox bindings for go - ★ 81
- go_mediainfo - Golang bindings for libmediainfo - ★ 18
- mix - Sequence-based Go-native audio mixer for music apps - ★ 87
- mp3 - golang mp3 frame parser - ★ 79
- music-theory - Go models of Note, Scale, Chord and Key - ★ 219
- portmidi - Go bindings for libportmidi - ★ 178
- go-taglib - Go wrapper for taglib - ★ 63
- vorbis - A "native" ogg vorbis decoder for Go (uses inline stb_vorbis) - ★ 22
- waveform - Go package capable of generating waveform images from audio streams. MIT Licensed. - ★ 220
- flac - A Free Lossless Audio Codec decoder in Go - ★ 79
- id3v2 - ID3 parsing and writing library for Go - ★ 79
-
Continuous Integration
- gomason - A tool for testing, building, signing, and publishing go binaries from a clean workspace. - ★ 12
- goveralls - ★ 520
- overalls - Multi-Package go project coverprofile for tools like goveralls - ★ 94
- roveralls - A Go recursive coverage testing tool - ★ 10
- duci - The small ci server - ★ 14
- drone - Drone is a Continuous Delivery platform built on Docker, written in Go - ★ 16164
-
CSS Preprocessors
- gcss - Pure Go CSS Preprocessor - ★ 408
- go-libsass - Go wrapper for libsass, the only Sass 3.5 compiler for Go - ★ 107
-
Data Structures
- binpacker - A binary stream packer and unpacker - ★ 98
- bit - Set data structure for positive numbers - ★ 24
- go-ef - A Go implementation of the Elias-Fano encoding - ★ 8
- roaring - Roaring bitmaps in Go (golang) - ★ 479
- bloom - Probabilistic set data structure - ★ 10
- BoomFilters - Probabilistic data structures for processing continuous, unbounded streams. - ★ 1030
- cuckoofilter - Cuckoo Filter: Practically Better Than Bloom - ★ 387
- algorithms - CLRS study. Codes are written with golang. - ★ 97
- go-datastructures - ★ 4510
- gods - GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet, LinkedHashSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, … - ★ 4747
- concurrent-writer - Highly concurrent drop-in replacement for bufio.Writer - ★ 10
- conjungo - A small flexible merge library in go - ★ 45
- count-min-log - Go implementation of Count-Min-Log - ★ 39
- go-geoindex - Go native library for fast point tracking and K-Nearest queries - ★ 286
- hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - ★ 160
- hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) - ★ 617
- deque - Fast ring-buffer deque (double-ended queue) - ★ 11
- golang-set - A simple set type for the Go language. Also used in Docker, Kubernetes, Ethereum. - ★ 886
- goset - Set is a useful collection but there is no built-in implementation in Go lang. - ★ 10
- set - A simple Set data structure implementation in Go (Golang) using LinkedHashMap. - ★ 5
- go-adaptive-radix-tree - Adaptive Radix Trees implemented in Go - ★ 48
- levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. - ★ 21
- levenshtein - Go implementation to calculate Levenshtein Distance. - ★ 33
- mspm - Multi-String Pattern Matching Algorithm Using TrieHashNode - ★ 3
- trie - Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching. - ★ 325
- skiplist - A Go library for an efficient implementation of a skip list: - ★ 61
- skiplist - skiplist for golang - ★ 57
- pipeline - Pipelines using goroutines - ★ 6
- go-mcache - Fast in-memory key:value store/cache library for Golang - ★ 15
- goskiplist - A skip list implementation in Go - ★ 172
- merkletree - A Merkle Tree implementation written in Go. - ★ 100
- bloom - Bloom filters implemented in Go. - ★ 119
- bitset - Go package implementing bitsets - ★ 401
- mafsa - Package mafsa implements Minimal Acyclic Finite State Automata in Go, essentially a high-speed, memory-efficient, Unicode-friendly set of strings. - ★ 269
- go-rquad - State of the art point location and neighbour finding algorithms for region quadtrees, in Go - ★ 88
- gota - Gota: DataFrames and data wrangling in Go (Golang) - ★ 662
- encoding - Integer Compression Libraries for Go - ★ 88
- bloom - Go package implementing Bloom filters - ★ 542
- ttlcache - An in-memory string-interface{} map with various expiration options for golang - ★ 71
-
Files
- afero - A FileSystem Abstraction System for Go - ★ 1751
- go-csv-tag - Read csv file from go using tags - ★ 34
- go-decent-copy - copy files for humans - ★ 6
- go-gtfs - Load GTFS files in golang - ★ 8
- notify - File system event notification library on steroids. - ★ 398
- skywalker - A package to allow one to concurrently go through a filesystem with ease - ★ 38
- tarfs - An implementation of the FileSystem interface for tar files. - ★ 25
- pdfcpu - A PDF processor written in Go. - ★ 697
-
Forms
- bind - ★ 20
- binding - Reflectionless data binding for Go's net/http (not yet a stable 1.0, but not likely to change much either) - ★ 713
- conform - Trims, sanitizes & scrubs data based on struct tags (go, golang) - ★ 147
- form - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support. - ★ 301
- formam - a package for decode form's values into struct in Go - ★ 107
- forms - A lightweight go library for parsing form data or json from an http.Request. - ★ 94
- csrf - gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services. - ★ 332
- nosurf - CSRF protection middleware for Go. - ★ 884
-
Game Development
- engine - Azul3D - A 3D game engine written in Go! - ★ 390
- ebiten - A dead simple 2D game library in Go - ★ 1166
- engo - Engo is an open-source 2D game engine written in Go. - ★ 892
- engine - Go 3D Game Engine - ★ 469
- go-astar - Go implementation of the A* search algorithm - ★ 287
- go-sdl2 - SDL2 binding for Go - ★ 985
- go3d - A performance oriented 2D/3D math package for Go - ★ 142
- gonet - A Game Server Skeleton in golang. - ★ 962
- goworld - Scalable Distributed Game Server Engine with Hot Swapping in Golang - ★ 835
- leaf - A game server framework in Go (golang) - ★ 2479
- oak - A pure Go game engine - ★ 538
- pitaya - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. - ★ 78
- pixel - A hand-crafted 2D game library in Go - ★ 1796
- raylib-go - Go bindings for raylib, a simple and easy-to-use library to learn videogames programming. - ★ 293
- termloop - Terminal-based game engine for Go, built on top of Termbox - ★ 931
- GarageEngine - Game engine written in Go (golang). - ★ 304
- glop - Bare-bones osx alternative to sdl - ★ 76
- go-collada - Go package for working with the Collada file format. - ★ 12
- nano - Lightweight, facility, high performance golang based game server framework - ★ 733
-
Go Compilers
- c4go - transpiling C code to Go code - ★ 43
- f4go - Transpiling fortran code to golang code - ★ 7
- gopherjs - A compiler from Go to JavaScript for running Go code in a browser - ★ 7555
- tardisgo - Golang->Haxe->CPP/CSharp/Java/JavaScript transpiler - ★ 380
- llgo - LLVM-based compiler for Go - ★ 930
-
IoT (Internet of Things)
- devices - Suite of libraries for IoT devices (written in Go), experimental for x/exp/io - ★ 211
- eywa - Make IoT a lot more fun with data. - ★ 22
- flogo - Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps. - ★ 820
- gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals - ★ 720
- mainflux - Industrial IoT Messaging and Device Management Server - ★ 218
- sensorbee - Lightweight stream processing engine for IoT - ★ 157
- gobot - Golang framework for robotics, drones, and the Internet of Things (IoT) - ★ 4859
- iot - A Golang client for Google IoT Core - ★ 21
- connectordb - An Open-Source Platform for Quantified Self & IoT - ★ 122
-
Machine Learning
- bayesian - Naive Bayesian Classification for Golang. - ★ 578
- CloudForest - Ensembles of decision trees in go/golang. - ★ 619
- eaopt - Evolutionary optimization library for Go (genetic algorithm, partical swarm optimization, differential evolution) - ★ 557
- fonet - fonet is a deep neural network package for Go. - ★ 21
- go-cluster - k-modes and k-prototypes clustering algorithms implementation in Go - ★ 14
- go-deep - Artificial Neural Network - ★ 178
- go-galib - Genetic Algorithms library written in Go / golang - ★ 162
- go-pr - Pattern recognition package in Go lang. - ★ 55
- gobrain - Neural Networks written in go - ★ 293
- godist - Probability distributions and associated methods in Go - ★ 20
- goga - Golang Genetic Algorithm - ★ 69
- golearn - Machine Learning for Go - ★ 6080
- golinear - liblinear bindings for Go - ★ 36
- gomind - A simplistic Neural Network Library in Go - ★ 5
- goml - On-line Machine Learning in Go (and so much more) - ★ 924
- goRecommend - Collaborative Filtering (CF) Algorithms in Go! - ★ 125
- goscore - Go Scoring API for PMML - ★ 21
- gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library - ★ 657
- libsvm - libsvm go version - ★ 58
- neat - NEAT (NeuroEvolution of Augmenting Topologies) implemented in Go - ★ 47
- neural-go - A multilayer perceptron network implemented in Go, with training via backpropagation. - ★ 58
- probab - Automatically exported from code.google.com/p/probab - ★ 9
- regommend - Recommendation engine for Go - ★ 219
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go - ★ 118
- tfgo - Tensorflow + Go, the gopher way - ★ 981
- Varis - Golang Neural Network - ★ 17
- mlgo - Automatically exported from code.google.com/p/mlgo - ★ 4
- go-fann - Go bindings for FANN, library for artificial neural networks - ★ 97
- gorgonia - Gorgonia is a library that helps facilitate machine learning in Go. - ★ 2243
-
OpenGL
-
Query Language
- gojsonq - A simple Go package to Query over JSON Data - ★ 450
- graphql - graphql parser + utilities - ★ 47
- graphql - An implementation of GraphQL for Go / Golang - ★ 3864
- jsonql - JSON query expression library in Golang. - ★ 177
- jsonslice - json slicer - ★ 9
- rql - Resource Query Language for REST - ★ 75
- graphql - GraphQL implementation in go - ★ 36
- graphql-go - GraphQL server with a focus on ease of use - ★ 2090
-
Resource Embedding
- fileb0x - a better customizable tool to embed files in go; also update embedded files remotely without restarting the server - ★ 349
- go-resources - Unfancy resources embedding for Go with out of box http.FileSystem support. - ★ 146
- go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images,templates, etc very easy. - ★ 1417
- packr - The simple and easy way to embed static files into Go binaries. - ★ 1359
- statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks - ★ 49
- statik - Embed files into a Go executable - ★ 1557
- templify - A tool to be used with 'go generate' to embed external template files into Go code. - ★ 15
- vfsgen - Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it. - ★ 415
- esc - A simple file embedder for Go - ★ 358
- go-embed - Generates go code to embed resource files into your library or executable - ★ 12
-
Security
- acra - Database encryption proxy for data-driven apps: strong selective encryption, SQL injections prevention, intrusion detection, honeypots. - ★ 322
- argon2pw - Argon2 password hashing package for go with constant time hash comparison - ★ 63
- badactor - BadActor.org An in-memory application driven jailer written in Go - ★ 225
- cameradar - Cameradar hacks its way into RTSP videosurveillance cameras - ★ 1453
- go-yara - Go bindings for YARA - ★ 103
- goArgonPass - goArgonPass is a Argon2 Password utility package for Go using the crypto library package Argon2. Argon2 was the winner of the most recent Password Hashing Competition. This is designed for use anywhere password hashing and verification might be needed and is intended to replace implementations using bcrypt or Scrypt. - ★ 7
- goSecretBoxPassword - A probably paranoid Golang utility library for securely hashing and encrypting passwords based on the Dropbox method. This implementation uses Blake2b, Scrypt and XSalsa20-Poly1305 (via NaCl SecretBox) to create secure password hashes that are also encrypted using a master passphrase. - ★ 20
- memguard - Easy and secure handling of sensitive memory, in pure Go. - ★ 827
- nacl - Pure Go implementation of the NaCL set of API's - ★ 371
- passlib - Idiotproof golang password validation library inspired by Python's passlib - ★ 204
- secure - HTTP middleware for Go that facilitates some quick security wins. - ★ 1047
- simple-scrypt - A convenience library for generating, comparing and inspecting password hashes using the scrypt KDF in Go. - ★ 141
- ssh-vault - encrypt/decrypt using ssh keys - ★ 169
- yara - The pattern matching swiss knife - ★ 74
- acme - acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt) - ★ 1619
- lego - Let's Encrypt client and ACME library written in Go - ★ 2950
-
Testing
- assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - ★ 10
- baloo - Expressive end-to-end HTTP API testing made easy in Go - ★ 553
- biff - Bifurcation Framework for testing and use cases - ★ 5
- charlatan - Go Interface Mocking Tool - ★ 177
- cupaloy - Simple Go snapshot testing - ★ 57
- dbcleaner - Clean database for testing, inspired by database_cleaner for Ruby - ★ 49
- dsunit - Datastore Testibility - ★ 19
- endly - End to end functional test and automation framework - ★ 53
- go-carpet - go-carpet - show test coverage in terminal for Go source files - ★ 181
- go-cmp - Package for comparing Go values in tests - ★ 695
- go-mutesting - Mutation testing for Go source code - ★ 182
- go-testdeep - Extremely flexible golang deep comparison, extends the go testing package - ★ 18
- go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests - ★ 246
- goblin - Minimal and Beautiful Go testing framework - ★ 556
- gocrest - GoCrest - Hamcrest-like matchers for Go - ★ 7
- gofight - Testing API Handler written in Golang. - ★ 201
- gogiven - gogiven - BDD testing framework for go that generates readable output directly from source code - ★ 7
- gospecify - A BDD library for Go - ★ 50
- gosuite - Test suites support for standard Go1.7 "testing" by leveraging Subtests feature - ★ 7
- gotest.tools - A collection of packages to augment the go testing package and support common patterns. - ★ 64
- hamcrest - Hamcrest matchers for the Go programming language - ★ 24
- httpexpect - End-to-end HTTP and REST API testing for Go. - ★ 967
- testfixtures - Rails-like test fixtures for Go. Write tests against a real database - ★ 219
- testify - A toolkit with common assertions and mocks that plays nicely with the standard library - ★ 6128
- testsql - Generate test data from SQL files before testing and clear it after finished. - ★ 4
- tt - Simple and colorful test tools - ★ 2
- wstest - go websocket client for unit testing of a websocket handler - ★ 48
- counterfeiter - A tool for generating self-contained, type-safe test doubles in go - ★ 281
- go-sqlmock - Sql mock driver for golang to test database interactions - ★ 1125
- go-txdb - Single transaction sql driver for golang - ★ 90
- gock - Expressive HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽ - ★ 621
- mock - GoMock is a mocking framework for the Go programming language. - ★ 1782
- govcr - HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing - ★ 49
- minimock - Powerful mock generation tool for Go programming language - ★ 145
- mockhttp - Mock object for Go http.ResponseWriter - ★ 22
- go-fuzz - Randomized testing for Go - ★ 2420
- gofuzz - Fuzz testing for go. - ★ 454
- tavor - A generic fuzzing and delta-debugging framework - ★ 189
- cdp - Package cdp provides type-safe bindings for the Chrome DevTools Protocol (CDP), written in the Go programming language. - ★ 190
- ggr - A lightweight load balancer used to create big Selenium clusters - ★ 169
- selenoid - Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. - ★ 810
- bro - bro watch files in directory and run tests for them - ★ 22
- frisby - API testing framework inspired by frisby-js - ★ 233
- badio - Extensions to Go's testing/iotest package - ★ 8
- gospec - Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED] - ★ 110
- goconvey - Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go. - ★ 3992
- chromedp - A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol. - ★ 2421
- godog - Cucumber for golang - ★ 474
- restit - A Go library help testing your RESTful API application - ★ 49
-
Editor Plugins
- vim-go - Go development plugin for Vim - ★ 9385
- goclipse - Eclipse IDE for the Go programming language: - ★ 776
- GoSublime - A Golang plugin collection for SublimeText 3, providing code completion and other IDE-like features. - ★ 3051
- gocode - An autocompletion daemon for the Go programming language - ★ 4496
- Watch - Watches for changes in a directory tree and reruns a command in an acme win or just on the terminal. - ★ 153
- vim-compiler-go - Vim compiler plugin for Go (golang) - ★ 77
- go-plus - An Enhanced Go Experience For The Atom Editor - ★ 1420
- go-mode.el - Emacs mode for the Go programming language - ★ 837
- vscode-go - An extension for VS Code which provides support for the Go language. - ★ 4168
- go-language-server - A Go language server. - ★ 17
- velour - An IRC client for acme — the project that started it all. - ★ 16
- gounit-vim - Vim plugin for - ★ 14
- theia-go-extension - Theia Go Extension - ★ 8
-
Validation
- validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving - ★ 2350
- govalidator - [Go] Package of validators and sanitizers for strings, numerics, slices and structs - ★ 2949
- ozzo-validation - An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags. - ★ 806
- validate - Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。 - ★ 14
- govalidator - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. - ★ 504
- validate - This package provides a framework for writing validations for Go applications. - ★ 39
-
Benchmarks
- skynet - Skynet 1M threads microbenchmark - ★ 872
- go-http-routing-benchmark - Go HTTP request router and web framework benchmark - ★ 1146
- go-web-framework-benchmark - Go web framework benchmark - ★ 820
- speedtest-resize - Compare various Image resize algorithms for the Go language - ★ 153
- go_serialization_benchmarks - Benchmarks of Go serialization methods - ★ 724
- go-benchmarks - A few miscellaneous Go microbenchmarks. - ★ 106
- autobench - Go benchmark harness. - ★ 88
- gospeed - Go micro-benchmarks for calculating the speed of language constructs - ★ 84
- golang-sql-benchmark - A benchmarking shootout of various db/SQL utilities for Go - ★ 47
- go-benchmark-app - Application for HTTP benchmarking via different rules and configs - ★ 18
- golang-micro-benchmarks - Tiny collection of micro benchmarks. - ★ 15
- kvbench - Key/Value database benchmark - ★ 14
- gocostmodel - Benchmarks of common basic operations for the Go language. - ★ 51
-
Gophers
- gophers - Free gophers - ★ 1285
- gopherize.me - Gopherize.me app - ★ 251
- gophers - Gopher Artwork by Ashley McNamara - ★ 1498
- Go-gopher-Vector - Go gopher Vector Data [.ai, .svg] - ★ 25
- gophericons - 34 gopher images for Go developers community - ★ 548
- gopher-vector - Vector data of gopher - ★ 318
- gopher-stickers - gopher stickers - ★ 392
- gopher-logos - adorable gopher logos - ★ 48
- gophers - random gopher graphics - ★ 47
- go-gopher - The Go Gopher Amigurumi Pattern - ★ 28
-
Version Control
- git2go - Git to Go; bindings for libgit2. Like McDonald's but tastier. - ★ 1225
- go-vcs - manipulate and inspect VCS repositories in Go - ★ 65
- gh - Scriptable server and net/http middleware for GitHub Webhooks. - ★ 62
- hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - ★ 12
-
Video
- go-astisub - Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.) - ★ 130
- libvlc-go - Go bindings for libvlc 2.X/3.X/4.X used by the VLC media player - ★ 32
- v4l - Facade to the Video4Linux video capture interface. - ★ 19
- gmf - Go Media Framework - ★ 414
- goav - Golang bindings for FFmpeg - ★ 541
- go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO - ★ 218
- gst - Go bindings for GStreamer (retired: currently I don't use/develop this package) - ★ 146
- libgosubs - golang library to read and write various subtitle formats - ★ 9
-
XML
- xpath - XPath package for Golang - ★ 94
- xquery - xquery, extract data or evaluate value from HTML/XML documents using XPath expression in Go - ★ 136
- XML-Comp - Compare ANY markup documents. - ★ 15
- xml2map - XML to MAP converter written Golang - ★ 7
- xmlwriter - xmlwriter is a Go library providing procedural XML generation based on libxml2's xmlwriter module - ★ 5
-
Windows
Programming Languages
Categories
Utilities
129
Software Packages
93
Web Frameworks
82
Third-party APIs
76
Database
67
Command Line
58
Miscellaneous
58
Testing
49
Networking
48
Text Processing
46
Database Drivers
43
Messaging
40
Data Structures
39
Logging
39
Natural Language Processing
35
Images
31
Distributed Systems
30
Machine Learning
29
Science and Data Analysis
28
Authentication and OAuth
28
Configuration
26
Code Analysis
21
Goroutines
19
Game Development
19
Template Engines
18
Audio and Music
18
ORM
18
Security
16
Embeddable Scripting Languages
15
Date and Time
15
Package Management
14
Serialization
14
GUI
14
Benchmarks
13
Editor Plugins
13
Email
11
Resource Embedding
10
Gophers
10
Server Applications
10
Generation and Generics
10
Financial
9
Websites
9
IoT (Internet of Things)
9
Go Tools
9
Forms
8
Video
8
Query Language
8
Files
8
Geographic
7
Validation
6
Continuous Integration
6
Go Generate Tools
6
XML
5
Go Compilers
5
OpenGL
5
Version Control
4
CSS Preprocessors
2
E-Books
2
Windows
2
Sub Categories
Keywords
golang
461
go
458
golang-library
38
cli
34
database
32
http
28
testing
23
sql
22
json
21
middleware
20
api
18
awesome-go
16
golang-package
16
framework
15
docker
15
router
15
library
14
machine-learning
13
command-line
13
logging
13
redis
12
xml
12
orm
12
mysql
12
parser
11
html
11
postgresql
10
web
10
image
10
concurrency
10
configuration
10
security
10
microservice
10
microservices
9
server
9
client
9
fast
9
distributed-systems
9
sqlite
9
rpc
9
github
9
api-client
9
pubsub
9
validation
8
generator
8
kubernetes
8
log
8
cross-platform
8
terminal
8
devops
8