# Go
- GitHub Toweave's Awesome. Don't skimp on your's star. (opens new window)
- A curated list of awesome Go frameworks, libraries, software and resources.
- Inspired by Awesome.
- If you see a package or project here that is no longer maintained or is not a good fit, please submit a issue to improve this file. Thank you!
- Last Sync Time: Tue Aug 08 2023 16:03:18 GMT+0800 (中国标准时间)
- Synchronize Every Week.
# Order by alphabetical and star count.
- Awesome Go
- Audio and Music
- Authentication and OAuth
- Blockchain
- Bot Building
- Build Automation
- Standard CLI
- Advanced Console UIs
- Configuration
- Continuous Integration
- CSS Preprocessors
- Data Structures
- Database
- Database Drivers
- Date and Time
- Distributed Systems
- Dynamic DNS
- Embeddable Scripting Languages
- Error Handling
- File Handling
- Financial
- Forms
- Functional
- Game Development
- Generation and Generics
- Geographic
- Go Compilers
- Goroutines
- GUI
- Hardware
- Images
- IoT -> Internet of Things
- Job Scheduler
- JSON
- Logging
- Machine Learning
- Messaging
- Microsoft Office
- Microsoft Excel
- Miscellaneous
- Natural Language Processing
- Networking
- HTTP Clients
- OpenGL
- ORM
- Package Management
- Performance
- Query Language
- Resource Embedding
- Science and Data Analysis
- Security
- Serialization
- Server Applications
- Stream Processing
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- UUID
- Validation
- Version Control
- Video
- Web Frameworks
- WebAssembly
- Windows
- XML
- Tools
- Resources
# Awesome Go
- A curated list of awesome Go frameworks, libraries, software and resources.
# Audio and Music
- Libraries for manipulating audio.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
oto (opens new window) | 1300 | ♪ A low-level library to play sound on multiple platforms ♪ | 15 hours ago |
portaudio (opens new window) | 608 | Go bindings for the PortAudio audio I/O library | a month ago |
music-theory (opens new window) | 415 | Go models of Note, Scale, Chord and Key | 3 years ago |
waveform (opens new window) | 354 | Go package capable of generating waveform images from audio streams. MIT Licensed. | 3 years ago |
id3v2 (opens new window) | 293 | 🎵 ID3 decoding and encoding library for Go | 3 months ago |
GoAudio (opens new window) | 292 | Go tools for audio processing & creation 🎶 | a year ago |
portmidi (opens new window) | 279 | Go bindings for libportmidi | a year ago |
flac (opens new window) | 255 | Package flac provides access to FLAC (Free Lossless Audio Codec) streams. | 4 months ago |
malgo (opens new window) | 223 | Mini audio library | 6 months ago |
mix (opens new window) | 170 | Sequence-based Go-native audio mixer for music apps | 3 years ago |
gaad (opens new window) | 112 | GAAD (Go Advanced Audio Decoder) | 6 months ago |
minimp3 (opens new window) | 108 | Decode mp3 base on https://github.com/lieff/minimp3 | 6 days ago |
vorbis (opens new window) | 32 | A "native" ogg vorbis decoder for Go (uses inline stb_vorbis) | 10 months ago |
gosamplerate (opens new window) | 29 | Go Bindings for libsamplerate | 3 years ago |
# Authentication and OAuth
- Libraries for implementing authentications schemes.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
casbin (opens new window) | 15473 | An authorization library that supports access control models like ACL, RBAC, ABAC in Golang: https://discord.gg/S5UjpzGZjN | 2 hours ago |
oauth2 (opens new window) | 4813 | Go OAuth2 | 3 days ago |
goth (opens new window) | 4271 | Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications. | 4 days ago |
authboss (opens new window) | 3471 | The boss of http auth. | 16 days ago |
go-oauth2-server (opens new window) | 2040 | A standalone, specification-compliant, OAuth2 server written in Golang. | 4 months ago |
go-jose (opens new window) | 1984 | An implementation of JOSE standards (JWE, JWS, JWT) in Go | 7 months ago |
loginsrv (opens new window) | 1901 | JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, .. | 2 years ago |
osin (opens new window) | 1826 | Golang OAuth2 server library | 15 days ago |
gologin (opens new window) | 1626 | Go login handlers for authentication providers (OAuth1, OAuth2) | 15 hours ago |
scs (opens new window) | 1538 | HTTP Session Management for Go | 14 hours ago |
gorbac (opens new window) | 1480 | goRBAC provides a lightweight role-based access control (RBAC) implementation in Golang. | 16 days ago |
paseto (opens new window) | 736 | Platform-Agnostic Security Tokens implementation in GO (Golang) | 5 months ago |
jwt (opens new window) | 611 | Safe, simple and fast JSON Web Tokens for Go | 10 days ago |
permissions2 (opens new window) | 486 | 🔐 Middleware for keeping track of users, login states and permissions | a month ago |
go-guardian (opens new window) | 483 | Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication. | 5 months ago |
jwt (opens new window) | 337 | JSON Web Token library | 3 months ago |
jeff (opens new window) | 257 | 🍍Jeff provides the simplest way to manage web sessions in Go. | 5 months ago |
jwt-auth (opens new window) | 229 | This package provides json web token (jwt) middleware for goLang http servers | 2 years ago |
httpauth (opens new window) | 219 | HTTP Authentication middlewares | 2 years ago |
branca (opens new window) | 168 | 🔑 Secure alternative to JWT. Authenticated Encrypted API Tokens for Go. | 3 years ago |
otpgen (opens new window) | 130 | Library to generate TOTP/HOTP codes | 2 years ago |
sessionup (opens new window) | 120 | Straightforward HTTP session management | a year ago |
sjwt (opens new window) | 112 | Simple JWT Golang | a year ago |
session (opens new window) | 111 | Go session management for web servers (including support for Google App Engine - GAE). | a year ago |
rbac (opens new window) | 107 | Minimalistic RBAC package for Go applications | 5 years ago |
jwt (opens new window) | 104 | This is an implementation of JWT in golang! | 3 years ago |
securecookie (opens new window) | 75 | Fast, secure and efficient secure cookie encoder/decoder | 6 months ago |
sessions (opens new window) | 75 | A dead simple, highly performant, highly customizable sessions middleware for go http servers. | 21 days ago |
otpgo (opens new window) | 58 | Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. | 2 years ago |
go-email-normalizer (opens new window) | 57 | Golang library for providing a canonical representation of email address. | 2 months ago |
scope (opens new window) | 32 | Easily Manage OAuth2 Scopes In Go | 2 years ago |
cookiestxt (opens new window) | 12 | cookiestxt implement parser of cookies txt format | 9 months ago |
sessiongate-go (opens new window) | 10 | A driver for the SessionGate Redis module - easy session management using the Go language. | 5 years ago |
# Blockchain
- Tools for building blockchains.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-ethereum (opens new window) | 43204 | Official Go implementation of the Ethereum protocol | 17 minutes ago |
tendermint (opens new window) | 5532 | ⟁ Tendermint Core (BFT Consensus) in Go | 19 hours ago |
cosmos-sdk (opens new window) | 5366 | ⛓ A Framework for Building High Value Public Blockchains ✨ | 12 minutes ago |
gossamer (opens new window) | 391 | 🕸️ Go Implementation of the Polkadot Host | 12 hours ago |
# Bot Building
- Libraries for building and working with bots.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
telegram-bot-api (opens new window) | 4831 | Golang bindings for the Telegram Bot API | 7 days ago |
olivia (opens new window) | 3570 | 💁♀️Your new best friend powered by an artificial neural network | a month ago |
telebot (opens new window) | 3195 | Telebot is a Telegram bot framework in Go. | 2 days ago |
kelp (opens new window) | 1006 | Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges | 8 months ago |
golang-crypto-trading-bot (opens new window) | 927 | A golang implementation of a console-based trading bot for cryptocurrency exchanges | 13 days ago |
slacker (opens new window) | 791 | Slack Bot Framework | 9 days ago |
bot (opens new window) | 786 | IRC, Slack, Telegram and RocketChat bot written in go | 5 months ago |
tbot (opens new window) | 336 | Go library for Telegram Bot API | 2 years ago |
go-twitch-irc (opens new window) | 302 | go irc client for twitch.tv | 7 months ago |
echotron (opens new window) | 261 | An elegant and concurrent library for the Telegram bot API in Go. | 2 months ago |
go-sarah (opens new window) | 259 | Simple yet customizable bot framework written in Go. | a month ago |
tenyks (opens new window) | 175 | The Tenyks IRC bot. | 6 months ago |
hanu (opens new window) | 147 | Golang Framework for writing Slack bots | 4 months ago |
slack-bot (opens new window) | 141 | Ready to use Slack bot for lazy developers: start Jenkins jobs, watch Jira tickets, watch pull requests with AI support... | 3 days ago |
go-tgbot (opens new window) | 119 | Golang telegram bot API wrapper, session-based router and middleware | 5 years ago |
ephemeral-roles (opens new window) | 80 | A Discord bot for managing ephemeral roles based upon voice channel member presence. | 5 months ago |
margelet (opens new window) | 80 | Telegram Bot Framework for Go | a year ago |
slackscot (opens new window) | 55 | Slack bot core/framework written in Go with support for reactions to message updates/deletes | 5 months ago |
govkbot (opens new window) | 43 | VK bot package for Go | 23 days ago |
teleterm (opens new window) | 26 | Telegram Bot Exec Terminal Command | a month ago |
micha (opens new window) | 25 | Client lib for Telegram bot api | a month ago |
# Build Automation
- Libraries and tools helping with build automation.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
task (opens new window) | 8251 | A task runner / simpler Make alternative written in Go | 3 days ago |
realize (opens new window) | 4408 | 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. | 2 years ago |
mmake (opens new window) | 1663 | Modern Make | a month ago |
goyek (opens new window) | 391 | Build automation Go library. | 2 months ago |
taskctl (opens new window) | 258 | Concurrent task runner, developer's routine tasks automation toolkit. Simple modern alternative to GNU Make 🧰 | 3 months ago |
1build (opens new window) | 214 | Frictionless way of managing project-specific commands | 4 months ago |
gaper (opens new window) | 74 | Builds and restarts a Go project when it crashes or some watched file changes | 17 hours ago |
anko (opens new window) | 30 | 🔮 Simple application watcher | 2 years ago |
# Standard CLI
- Libraries for building standard or basic Command Line applications.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
cobra (opens new window) | 32835 | A Commander for modern Go CLI interactions | 6 hours ago |
cli (opens new window) | 20515 | A simple, fast, and fun package for building command line apps in Go | 16 days ago |
elvish (opens new window) | 5113 | Elvish = Expressive Programming Language + Versatile Interactive Shell | 4 hours ago |
andOTP (opens new window) | 3698 | [Unmaintained] Open source two-factor authentication for Android | a year ago |
kingpin (opens new window) | 3361 | CONTRIBUTIONS ONLY: A Go (golang) command line and flag parser | 3 months ago |
dnote (opens new window) | 2553 | A simple command line notebook for programmers | 2 months ago |
go-flags (opens new window) | 2421 | go command line option parser | 5 months ago |
pflag (opens new window) | 2147 | Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. | a month ago |
go-arg (opens new window) | 1683 | Struct-based argument parsing in Go | 19 hours ago |
cli (opens new window) | 1679 | A Go library for implementing command-line interfaces. | 5 months ago |
ops (opens new window) | 1110 | ops - build and run nanos unikernels | 4 days ago |
liner (opens new window) | 985 | Pure Go line editor with history, inspired by linenoise | 2 months ago |
complete (opens new window) | 891 | bash completion written in go + bash completion for go command | 20 days ago |
mow.cli (opens new window) | 854 | A versatile library for building CLI applications in Go | 2 months ago |
flaggy (opens new window) | 832 | Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. | 4 months ago |
cli (opens new window) | 689 | CLI - A package for building command line app with go | 5 months ago |
argparse (opens new window) | 537 | Argparse for golang. Just because flag sucks | 9 months ago |
climax (opens new window) | 207 | Climax is an alternative CLI with the human face | 3 years ago |
wmenu (opens new window) | 194 | An easy to use menu structure for cli applications that prompts users to make choices. | 2 years ago |
hiboot (opens new window) | 179 | hiboot is a high performance web and cli application framework with dependency injection support | 5 months ago |
commandeer (opens new window) | 170 | Automatically sets up command line flags based on struct fields and tags. | a year ago |
clir (opens new window) | 155 | A Simple and Clear CLI library. Dependency free. | 6 months ago |
sflags (opens new window) | 146 | Generate flags by parsing structures | 2 years ago |
job (opens new window) | 128 | JOB, make your short-term command as a long-term job. 将命令行规划成任务的工具 | 3 years ago |
flag (opens new window) | 126 | Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand | 3 years ago |
cmdr (opens new window) | 123 | POSIX-compliant command-line UI (CLI) parser and Hierarchical-configuration operations | 18 days ago |
clif (opens new window) | 123 | Another CLI framework for Go. It works on my machine. | 4 years ago |
cli (opens new window) | 120 | Simple and complete API for building command line applications in Go | 2 years ago |
env (opens new window) | 106 | Tag-based environment configuration for structs | 3 years ago |
gocmd (opens new window) | 65 | A Go library for building command line applications. | 4 months ago |
wlog (opens new window) | 59 | A simple logging interface that supports cross-platform color and concurrency. | 2 years ago |
strumt (opens new window) | 55 | Strumt is a library to create prompt chain | 2 months ago |
go-getoptions (opens new window) | 47 | Fully featured Go (golang) command line option parser with built-in auto-completion support. | 10 days ago |
go-command-chain (opens new window) | 44 | A go library for easy configure and run command chains. Such like pipelining in unix shells. | 3 months ago |
flagvar (opens new window) | 42 | A collection of CLI argument types for the Go flag package. | 4 months ago |
argv (opens new window) | 38 | 3 years ago | |
cmd (opens new window) | 37 | The standard library flag package with its missing features | 3 years ago |
go-commander (opens new window) | 33 | Go library to simplify CLI workflow | 3 years ago |
go-andotp (opens new window) | 23 | CLI program to encrypt/decrypt andOTP files | 4 months ago |
sand (opens new window) | 20 | Package for creating interpreters | 5 years ago |
ts (opens new window) | 17 | timestamp convert & compare tool. 时间戳转换与对比工具 | 4 years ago |
subcmd (opens new window) | 4 | a month ago |
# Advanced Console UIs
- Libraries for building Console Applications and Console User Interfaces.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
blessed-contrib (opens new window) | 15203 | Build terminal dashboards using ascii/ansi art and javascript | 4 months ago |
termui (opens new window) | 12594 | Golang terminal dashboard | 3 months ago |
gocui (opens new window) | 9313 | Minimalist Go package aimed at creating Console User Interfaces. | 2 months ago |
python-prompt-toolkit (opens new window) | 8503 | Library for building powerful interactive command line applications in Python | 10 days ago |
go-prompt (opens new window) | 4971 | Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. | 23 days ago |
termbox-go (opens new window) | 4559 | Pure Go termbox implementation | 2 years ago |
pterm (opens new window) | 3932 | ✨ #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible. | a day ago |
progressbar (opens new window) | 3418 | A really basic thread-safe progress bar for Golang applications | 11 days ago |
termdash (opens new window) | 2351 | Terminal based dashboard. | 6 months ago |
asciigraph (opens new window) | 2287 | Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. | 23 days ago |
mpb (opens new window) | 2075 | multi progress bar for Go cli applications | 5 days ago |
uiprogress (opens new window) | 2037 | A go library to render progress bars in terminal applications | 2 years ago |
uilive (opens new window) | 1587 | uilive is a go library for updating terminal output in realtime | 17 days ago |
termenv (opens new window) | 1427 | Advanced ANSI style & color support for your terminal applications | a day ago |
color (opens new window) | 1357 | 🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染 | 5 hours ago |
aurora (opens new window) | 1340 | Golang ultimate ANSI-colors that supports Printf/Sprintf methods | 10 months ago |
go-isatty (opens new window) | 724 | 3 months ago | |
uitable (opens new window) | 711 | A go library to improve readability in terminal apps using tabular data | 10 months ago |
go-colorable (opens new window) | 706 | 5 months ago | |
gommon (opens new window) | 498 | Common packages for Go | 5 months ago |
simpletable (opens new window) | 461 | Simple tables in terminal with Go | 2 years ago |
chalk (opens new window) | 429 | Intuitive package for prettifying terminal/console output. http://godoc.org/github.com/ttacon/chalk | 4 years ago |
yacspin (opens new window) | 404 | Yet Another CLi Spinner; providing over 80 easy to use and customizable terminal spinners for multiple OSes | 2 years ago |
box-cli-maker (opens new window) | 372 | Make Highly Customized Boxes for CLI | 2 months ago |
tabby (opens new window) | 331 | A tiny library for super simple Golang tables | 3 years ago |
go-colortext (opens new window) | 214 | Change the color of console text. | 3 years ago |
cfmt (opens new window) | 95 | 🎨 Contextual fmt inspired by bootstrap color classes | 5 years ago |
tabular (opens new window) | 70 | Tabular simplifies printing ASCII tables from command line utilities | 3 months ago |
cfmt (opens new window) | 58 | Small library for simple and convenient formatted stylized output to the console. | 2 years ago |
ctc (opens new window) | 44 | Console Text Colors - The non-invasive cross-platform terminal color library does not need to modify the Print method | 5 months ago |
table (opens new window) | 44 | pretty colorfull tables in go with less effort | 3 months ago |
marker (opens new window) | 40 | 🖍️ Marker is the easiest way to match and mark strings for colorful terminal outputs! | 9 months ago |
colourize (opens new window) | 26 | An ANSI colour terminal package for Go | a year ago |
go-ataman (opens new window) | 14 | Another Text Attribute Manupulator | 3 years ago |
# Configuration
- Libraries for configuration parsing.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
viper (opens new window) | 23642 | Go configuration with fangs | 4 days ago |
godotenv (opens new window) | 6464 | A Go port of Ruby's dotenv library (Loads environment variables from .env files) | 2 months ago |
envconfig (opens new window) | 4619 | Golang library for managing configuration data from environment variables | 3 months ago |
env (opens new window) | 3738 | A simple and zero-dependencies library to parse environment variables into structs | 19 hours ago |
ini (opens new window) | 3279 | Package ini provides INI file read and write functionality in Go | 21 days ago |
koanf (opens new window) | 1930 | Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. | 18 days ago |
cleanenv (opens new window) | 1102 | ✨Clean and minimalistic environment configuration reader for Golang | 8 days ago |
konfig (opens new window) | 639 | Composable, observable and performant config handling for Go for the distributed processing era | 3 years ago |
config (opens new window) | 475 | 📝 Go configuration manage(load,get,set,export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名 | 2 days ago |
confita (opens new window) | 471 | Load configuration in cascade from multiple backends into a struct | 9 months ago |
aconfig (opens new window) | 469 | Simple, useful and opinionated config loader. | 3 months ago |
xdg (opens new window) | 423 | Go implementation of the XDG Base Directory Specification and XDG user directories | a day ago |
config (opens new window) | 336 | A lightweight yet powerful configuration manager for the Go programming language | 7 months ago |
config (opens new window) | 329 | 12 factor configuration as a typesafe struct in as little as two function calls | a year ago |
hjson-go (opens new window) | 303 | Hjson for Go | 8 months ago |
fig (opens new window) | 275 | A minimalist Go configuration library | 12 days ago |
store (opens new window) | 271 | A dead simple configuration manager for Go applications | 25 days ago |
config (opens new window) | 265 | JSON or YAML configuration wrapper with convenient access methods. | a year ago |
envconfig (opens new window) | 234 | Small library to read your configuration from environment variables | 2 years ago |
config (opens new window) | 215 | 🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. | 2 years ago |
gcfg (opens new window) | 164 | read INI-style configuration files into Go structs; supports user-defined types and subsections | 2 years ago |
harvester (opens new window) | 126 | Harvest configuration, watch and notify subscriber | a day ago |
onion (opens new window) | 113 | Layer based configuration for golang | 5 months ago |
envcfg (opens new window) | 100 | Un-marshaling environment variables to Go structs | 6 years ago |
envh (opens new window) | 96 | Go helpers to manage environment variables | 2 months ago |
configuro (opens new window) | 87 | An opinionated configuration loading framework for Containerized and Cloud-Native applications. | 10 months ago |
configuration (opens new window) | 84 | Library for setting values to structs' fields from env, flags, files or default tag | 15 days ago |
xdg (opens new window) | 76 | A cross platform package that follows the XDG Standard | 3 years ago |
gofigure (opens new window) | 66 | Go configuration made easy! | 4 years ago |
uconfig (opens new window) | 62 | Lightweight, zero-dependency, and extendable configuration management library for Go | 7 months ago |
hocon (opens new window) | 60 | go implementation of lightbend's HOCON configuration library https://github.com/lightbend/config | 6 months ago |
configure (opens new window) | 57 | Configure is a Go package that gives you easy configuration of your project through redundancy | 4 years ago |
go-aws-ssm (opens new window) | 54 | Go package that interfaces with AWS System Manager | a year ago |
gone (opens new window) | 46 | Golang packages for writing small daemons and servers. | 2 years ago |
go-up (opens new window) | 42 | go-up! A simple configuration library with recursive placeholders resolution and no magic. | 4 years ago |
ingo (opens new window) | 36 | persistent storage for flags in go | 6 years ago |
mini (opens new window) | 34 | A golang package for parsing ini-style configuration files | 5 years ago |
genv (opens new window) | 33 | Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file. | 4 years ago |
conflate (opens new window) | 27 | Library providing routines to merge and validate JSON, YAML and/or TOML files | 13 days ago |
go-ssm-config (opens new window) | 17 | Go utility for loading configuration parameters from AWS SSM (Parameter Store) | 10 months ago |
ini (opens new window) | 12 | ini parser for golang | 25 days ago |
envconf (opens new window) | 11 | Configure Go applications from the environment | 9 years ago |
env (opens new window) | 10 | Golang Get Environment Variables Package | 9 months ago |
go-ini (opens new window) | 9 | automatic mirror of https://git.sr.ht/~spc/go-ini | 25 days ago |
typenv (opens new window) | 9 | Go minimalist typed environment variables library | 7 months ago |
go-conf (opens new window) | 8 | Library for easy configuration of a golang service | 2 years ago |
swap (opens new window) | 8 | Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). | 2 years ago |
gonfig (opens new window) | 6 | Tag based configuration loader from different providers | 2 years ago |
config (opens new window) | 3 | Configuration loader to use in Go projects | 5 months ago |
# Continuous Integration
- Tools for help with continuous integration.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
drone (opens new window) | 27133 | Drone is a Container-Native, Continuous Delivery Platform | 7 days ago |
cds (opens new window) | 4256 | Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform | a day ago |
goveralls (opens new window) | 765 | 3 months ago | |
gotestfmt (opens new window) | 411 | go test output for humans | 2 months ago |
overalls (opens new window) | 112 | 👖Multi-Package go project coverprofile for tools like goveralls | 4 years ago |
duci (opens new window) | 74 | The simple ci server | 5 months ago |
gomason (opens new window) | 57 | A tool for testing, building, signing, and publishing binaries. | 6 months ago |
roveralls (opens new window) | 19 | A Go recursive coverage testing tool | 6 years ago |
# CSS Preprocessors
- Libraries for preprocessing CSS files.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gcss (opens new window) | 483 | Pure Go CSS Preprocessor | 9 years ago |
go-libsass (opens new window) | 196 | Go wrapper for libsass, the only Sass 3.5 compiler for Go | 5 months ago |
# Data Structures
- Generic datastructures and algorithms in Go.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gods (opens new window) | 14101 | GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more | 13 days ago |
go-datastructures (opens new window) | 7131 | A collection of useful, performant, and threadsafe Go datastructures. | a month ago |
golang-set (opens new window) | 3401 | A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp. | 5 days ago |
gota (opens new window) | 2725 | Gota: DataFrames and data wrangling in Go (Golang) | a day ago |
roaring (opens new window) | 2097 | Roaring bitmaps in Go (golang) | 5 hours ago |
bloom (opens new window) | 2006 | Go package implementing Bloom filters | 5 hours ago |
gocache (opens new window) | 1887 | ☔️ A complete Go cache library that brings you multiple ways of managing your caches | an hour ago |
BoomFilters (opens new window) | 1548 | Probabilistic data structures for processing continuous, unbounded streams. | 2 years ago |
bitset (opens new window) | 1140 | Go package implementing bitsets | a month ago |
cuckoofilter (opens new window) | 999 | Cuckoo Filter: Practically Better Than Bloom | a year ago |
gostl (opens new window) | 899 | Data structure and algorithm library for go, designed to provide functions similar to C++ STL | a month ago |
hyperloglog (opens new window) | 868 | HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom | 3 months ago |
algorithms (opens new window) | 734 | CLRS study. Codes are written with golang. | 2 years ago |
ttlcache (opens new window) | 685 | An in-memory cache with item expiration and generics | 9 days ago |
trie (opens new window) | 655 | Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching. | 8 months ago |
deque (opens new window) | 475 | Fast ring-buffer deque (double-ended queue) | 6 months ago |
merkletree (opens new window) | 443 | A Merkle Tree implementation written in Go. | 6 months ago |
go-edlib (opens new window) | 397 | 📚 String comparison and edit distance algorithms library, featuring : Levenshtein, LCS, Hamming, Damerau levenshtein (OSA and Adjacent transpositions algorithms), Jaro-Winkler, Cosine, etc... | a year ago |
go-geoindex (opens new window) | 350 | Go native library for fast point tracking and K-Nearest queries | 5 years ago |
goconcurrentqueue (opens new window) | 299 | Go concurrent-safe, goroutine-safe, thread-safe queue | 3 months ago |
levenshtein (opens new window) | 295 | Go implementation to calculate Levenshtein Distance. | 6 months ago |
go-adaptive-radix-tree (opens new window) | 293 | Adaptive Radix Trees implemented in Go | 7 months ago |
hilbert (opens new window) | 266 | Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. | a year ago |
cuckoo-filter (opens new window) | 262 | Cuckoo Filter go implement, better than Bloom Filter, configurable and space optimized 布谷鸟过滤器的Go实现,优于布隆过滤器,可以定制化过滤器参数,并进行了空间优化 | a year ago |
skiplist (opens new window) | 254 | A Go library for an efficient implementation of a skip list: https://godoc.org/github.com/MauriceGit/skiplist | 6 months ago |
goskiplist (opens new window) | 237 | A skip list implementation in Go | 4 years ago |
bitmap (opens new window) | 224 | Simple dense bitmap index in Go with binary operators | a month ago |
binpacker (opens new window) | 210 | A binary stream packer and unpacker | 2 years ago |
iter (opens new window) | 180 | Go implementation of C++ STL iterators and algorithms. | a year ago |
bit (opens new window) | 150 | Bitset data structure | 7 months ago |
bloom (opens new window) | 148 | Bloom filters implemented in Go. | 5 years ago |
deque (opens new window) | 135 | A highly optimized double-ended queue | 9 months ago |
remember-go (opens new window) | 133 | Cache Slow Database Queries | 2 years ago |
ring (opens new window) | 130 | Package ring provides a high performance and thread safe Go implementation of a bloom filter. | 3 years ago |
encoding (opens new window) | 129 | Integer Compression Libraries for Go | 6 years ago |
go-rquad (opens new window) | 126 | 📌 State of the art point location and neighbour finding algorithms for region quadtrees, in Go | a year ago |
conjungo (opens new window) | 116 | A small flexible merge library in go | 3 months ago |
crunch (opens new window) | 88 | take bytes out of things easily ✨🍪 | 7 months ago |
go-mcache (opens new window) | 88 | Fast in-memory key:value store/cache with TTL | 4 years ago |
skiplist (opens new window) | 82 | skiplist for golang | 9 years ago |
bloom (opens new window) | 79 | Probabilistic set data structure | 6 years ago |
levenshtein (opens new window) | 77 | Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. | 3 years ago |
nan (opens new window) | 75 | Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers | a month ago |
timedmap (opens new window) | 64 | A thread safe map which has expiring key-value pairs. | 4 months ago |
count-min-log (opens new window) | 63 | Go implementation of Count-Min-Log | 6 years ago |
cmap (opens new window) | 61 | a thread-safe concurrent map for go | 8 months ago |
hide (opens new window) | 54 | ID type with marshalling to/from hash to prevent sending IDs to clients. | 2 years ago |
goset (opens new window) | 51 | Set is a useful collection but there is no built-in implementation in Go lang. | 3 years ago |
pipeline (opens new window) | 50 | Pipelines using goroutines | 2 years ago |
concurrent-writer (opens new window) | 49 | Highly concurrent drop-in replacement for bufio.Writer | 6 years ago |
typ (opens new window) | 42 | Null Types, Safe primitive type conversion and fetching value from complex structures. | 2 years ago |
dict (opens new window) | 39 | Python-like dictionaries for Go | 3 years ago |
ptrie (opens new window) | 33 | A prefix tree implementation in go | a year ago |
null (opens new window) | 31 | Nullable Go types that can be marshalled/unmarshalled to/from JSON. | 2 years ago |
go-ef (opens new window) | 30 | A Go implementation of the Elias-Fano encoding | 6 years ago |
mspm (opens new window) | 24 | Multi-String Pattern Matching Algorithm Using TrieNode | 5 years ago |
ordered-concurrently (opens new window) | 23 | Ordered-concurrently a library for concurrent processing with ordered output in Go. Process work concurrently and returns output in a channel in the order of input. It is useful in concurrently processing items in a queue, and get output in the order provided by the queue. | 3 months ago |
parapipe (opens new window) | 23 | Paralleling pipeline | 2 years ago |
set (opens new window) | 23 | A simple Set data structure implementation in Go (Golang) using LinkedHashMap. | a year ago |
treap (opens new window) | 22 | golang persistent immutable treap sorted sets | 4 years ago |
gofal (opens new window) | 17 | fractional api base on golang . golang math tools fractional molecular denominator 分数计算 分子 分母 运算 | 4 years ago |
hashsplit (opens new window) | 16 | 2 years ago | |
goterator (opens new window) | 14 | Lazy iterator implementation for Golang | 3 years ago |
bloomfilter (opens new window) | 13 | Yet another Bloomfilter implementation in Go, compatible with Java's Guava library | 6 months ago |
slices (opens new window) | 13 | Functions that operate on slices. Similar to functions from package strings or package bytes that have been adapted to work with slices. | 3 years ago |
dsu (opens new window) | 11 | Disjoint Set data structure implementation in Go | 2 years ago |
gdcache (opens new window) | 10 | gdcache is a pure non-intrusive cache library implemented by golang, you can use it to implement your own cache. | 2 years ago |
merkle (opens new window) | 10 | Merkle hash trees | a year ago |
parsefields (opens new window) | 7 | Tools for parse JSON-like logs for collecting unique fields and events | 4 years ago |
# Database
- Databases in Go.
# Databases implemented in Go
- Databases implemented in Go.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
prometheus (opens new window) | 49381 | The Prometheus monitoring system and time series database. | 22 minutes ago |
tidb (opens new window) | 34555 | TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://tidbcloud.com/free-trial | 9 minutes ago |
leveldb (opens new window) | 33261 | LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. | a month ago |
cockroach (opens new window) | 27557 | CockroachDB - the open source, cloud-native distributed SQL database. | 3 hours ago |
influxdb (opens new window) | 25920 | Scalable datastore for metrics, events, and real-time analytics | a day ago |
milvus (opens new window) | 21961 | A cloud-native vector database, storage for next generation AI applications | 14 minutes ago |
dgraph (opens new window) | 19508 | Native GraphQL Database with graph backend | 13 minutes ago |
rqlite (opens new window) | 13911 | The lightweight, distributed relational database built on SQLite | 6 hours ago |
badger (opens new window) | 12548 | Fast key-value DB in Go. | 7 hours ago |
groupcache (opens new window) | 12245 | groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. | 5 months ago |
VictoriaMetrics (opens new window) | 9018 | VictoriaMetrics: fast, cost-effective monitoring solution and time series database | an hour ago |
dtm (opens new window) | 8977 | A distributed transaction framework, supports workflow, saga, tcc, xa, 2-phase message, outbox patterns, supports many languages. | 16 days ago |
immudb (opens new window) | 8315 | immudb - immutable database based on zero trust, SQL/Key-Value/Document model, tamperproof, data change history | 10 hours ago |
go-cache (opens new window) | 7311 | An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. | 7 months ago |
bbolt (opens new window) | 6772 | An embedded key/value database for Go. | 17 hours ago |
bigcache (opens new window) | 6695 | Efficient cache for gigabytes of data written in Go. | a month ago |
goleveldb (opens new window) | 5798 | LevelDB key/value database in Go. | 7 days ago |
buntdb (opens new window) | 4167 | BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support | 2 months ago |
ledisdb (opens new window) | 3989 | A high performance NoSQL Database Server powered by Go | 2 months ago |
rosedb (opens new window) | 3908 | Lightweight, fast and reliable key/value storage engine based on Bitcask. | 20 hours ago |
nutsdb (opens new window) | 2963 | A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. | 5 hours ago |
godis (opens new window) | 2944 | A Golang implemented Redis Server and Cluster. Go 语言实现的 Redis 服务器和分布式集群 | 3 days ago |
tiedot (opens new window) | 2715 | A rudimentary implementation of a basic document (NoSQL) database in Go | 2 years ago |
gcache (opens new window) | 2404 | An in-memory cache library for golang. It supports multiple eviction policies: LRU, LFU, ARC | 8 months ago |
cache2go (opens new window) | 2000 | Concurrency-safe Go caching library with expiration capabilities and access counters | 4 months ago |
fastcache (opens new window) | 1808 | Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead | an hour ago |
CovenantSQL (opens new window) | 1445 | A decentralized, trusted, high performance, SQL database with blockchain features | 5 months ago |
diskv (opens new window) | 1293 | A disk-backed key-value store. | 2 years ago |
column (opens new window) | 1276 | High-performance, columnar, in-memory store with bitmap indexing in Go | a month ago |
databunker (opens new window) | 1106 | Secure SDK/vault for personal records/PII built to comply with GDPR | 22 days ago |
pogreb (opens new window) | 1095 | Embedded key-value store for read-heavy workloads written in Go | 6 hours ago |
eliasdb (opens new window) | 972 | EliasDB a graph-based database. | a year ago |
moss (opens new window) | 929 | moss - a simple, fast, ordered, persistable, key-val storage library for golang | a year ago |
levigo (opens new window) | 417 | levigo is a Go wrapper for LevelDB | a year ago |
pudge (opens new window) | 343 | Fast and simple key/value store written using Go's standard library | 2 years ago |
kivik (opens new window) | 276 | Kivik provides a common interface to CouchDB or CouchDB-like databases for Go and GopherJS. | 9 days ago |
vasto (opens new window) | 249 | A distributed key-value store. On Disk. Able to grow or shrink without service interruption. | 4 years ago |
piladb (opens new window) | 201 | Lightweight RESTful database engine based on stack data structures | 3 years ago |
golang-scribble (opens new window) | 164 | A tiny Golang JSON database | 4 years ago |
cache (opens new window) | 140 | 👜 Cache arbitrary data with an expiration time. | 9 months ago |
bcache (opens new window) | 125 | Eventually consistent distributed in-memory cache Go library | 7 months ago |
unitdb (opens new window) | 108 | Fast specialized time-series database for IoT, real-time internet connected devices and AI analytics. | 5 months ago |
slowpoke (opens new window) | 100 | Low-level key/value store in pure Go. | 4 years ago |
hare (opens new window) | 78 | Hare is a nimble little database management system for Go. | 2 years ago |
couchcache (opens new window) | 60 | A RESTful caching micro-service in Go backed by Couchbase | 8 months ago |
clusteredBigCache (opens new window) | 43 | golang bigcache with clustering as a library. | 6 years ago |
coffer (opens new window) | 34 | Simply ACID* key-value database. At the medium or even low latency it tries to provide greater throughput without losing the ACID properties of the database. The database provides the ability to create record headers at own discretion and use them as transactions. The maximum size of stored data is limited by the size of the computer's RAM. | 4 months ago |
tempdb (opens new window) | 17 | Key-value store for temporary items 📝 | 5 years ago |
ttlcache (opens new window) | 9 | Simple in-memory key-value storage with TTL for each record. | 10 months ago |
# Database schema migration
- Database schema migration.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
migrate (opens new window) | 11977 | Database migrations. CLI and Golang library. | 2 days ago |
goose (opens new window) | 4215 | A database migration tool. Supports SQL migrations and Go functions. | 3 days ago |
sql-migrate (opens new window) | 2906 | SQL schema migration tool for Go. | 19 days ago |
pop (opens new window) | 1360 | A Tasty Treat For All Your Database Needs | 14 days ago |
skeema (opens new window) | 1162 | Declarative pure-SQL schema management for MySQL and MariaDB | 4 days ago |
gormigrate (opens new window) | 918 | Minimalistic database migration helper for Gorm ORM | a month ago |
goavro (opens new window) | 903 | 24 days ago | |
migrator (opens new window) | 154 | Dead simple Go database migration library. | 5 months ago |
darwin (opens new window) | 135 | Database schema evolution library for Go | 5 months ago |
go-pg-migrations (opens new window) | 83 | A Go package to help write migrations with go-pg/pg. | 5 months ago |
sqlize (opens new window) | 64 | sql migration schema generate from models | 2 months ago |
avro (opens new window) | 43 | Apache AVRO for go | 2 years ago |
go-fixtures (opens new window) | 29 | Django style fixtures for Golang's excellent built-in database/sql library. | 4 years ago |
pravasan (opens new window) | 29 | Simple Migration Tool - written in Go | 5 years ago |
schema (opens new window) | 29 | Embedded schema migration package for Go | 4 months ago |
migrator (opens new window) | 24 | MySQL database migrator | a year ago |
go-pg-migrate (opens new window) | 11 | CLI-friendly package for pg migrations management. | 8 months ago |
# Database tools.
- Database-tools.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
vitess (opens new window) | 16605 | Vitess is a database clustering system for horizontal scaling of MySQL. | a minute ago |
pgweb (opens new window) | 7989 | Cross-platform client for PostgreSQL databases | 20 days ago |
kingshard (opens new window) | 6230 | A high-performance MySQL proxy | 2 years ago |
orchestrator (opens new window) | 5110 | MySQL replication topology management and HA | 2 months ago |
go-mysql (opens new window) | 4163 | a powerful mysql toolset with Go | 4 hours ago |
go-mysql-elasticsearch (opens new window) | 3986 | Sync MySQL data into elasticsearch | a year ago |
prest (opens new window) | 3864 | PostgreSQL ➕ REST, low-code, simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new | 2 months ago |
chproxy (opens new window) | 1126 | Open-Source ClickHouse http proxy and load balancer | 6 days ago |
pg_timetable (opens new window) | 895 | pg_timetable: Advanced scheduling for PostgreSQL | a day ago |
clickhouse-bulk (opens new window) | 427 | Collects many small inserts to ClickHouse and send in big inserts | 19 days ago |
myreplication (opens new window) | 190 | Golang MySql binary log replication listener | 5 years ago |
octillery (opens new window) | 183 | Go package for sharding databases ( Supports every ORM or raw SQL ) | 2 years ago |
dbbench (opens new window) | 88 | 🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts | 3 hours ago |
datagen (opens new window) | 56 | A fast data generator that's multi-table aware and supports multi-row DML. | 2 months ago |
prep (opens new window) | 33 | Prep finds all SQL statements in a Go package and instruments db connection with prepared statements | 6 years ago |
rwdb (opens new window) | 18 | Database wrapper that manage read write connections | 6 years ago |
# SQL query builder
- SQL query builder, libraries for building and using SQL.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
squirrel (opens new window) | 5938 | Fluent SQL generation for golang | 2 months ago |
xo (opens new window) | 3409 | Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server | 8 days ago |
goqu (opens new window) | 1940 | SQL builder and query library for golang | 5 days ago |
gendry (opens new window) | 1508 | a golang library for sql builder | 3 months ago |
jet (opens new window) | 1379 | Type safe SQL builder with code generation and automatic query result data mapping | 5 days ago |
dotsql (opens new window) | 677 | A Golang library for using SQL. | a year ago |
ozzo-dbx (opens new window) | 607 | 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. | 3 months ago |
dbq (opens new window) | 387 | Zero boilerplate database operations for Go | 2 years ago |
sqlingo (opens new window) | 328 | 💥 A lightweight DSL & ORM which helps you to write SQL in Go. | 5 days ago |
sqrl (opens new window) | 257 | Fluent SQL generation for golang | 2 months ago |
go-structured-query (opens new window) | 193 | Type safe SQL query builder and struct mapper for Go | 7 months ago |
sqlf (opens new window) | 124 | Fast SQL query builder for Go | 4 months ago |
buildsqlx (opens new window) | 122 | Go database query builder library for PostgreSQL | 24 days ago |
igor (opens new window) | 111 | igor is an abstraction layer for PostgreSQL with a gorm like syntax. | a month ago |
godbal (opens new window) | 58 | Database Abstraction Layer (dbal) for Go. Support SQL builder and get result easily (now only support mysql) | 5 years ago |
gosql (opens new window) | 30 | SQL query builder for Go | a year ago |
qry (opens new window) | 29 | Write your SQL queries in raw files with all benefits of modern IDEs, use them in an easy way inside your application with all the profit of compile time constants | 2 years ago |
mpath-go (opens new window) | 12 | Golang package for MPTT (Modified Preorder Tree Traversal) - materialized path realisation. | 4 years ago |
ormlite (opens new window) | 11 | Lightweight package containing some ORM-like features and helpers for sqlite databases. | 6 months ago |
# Database Drivers
- Libraries for connecting and operating databases.
# Relational Databases
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
mysql (opens new window) | 13563 | Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package | a day ago |
pq (opens new window) | 8220 | Pure Go Postgres driver for database/sql | a month ago |
pgx (opens new window) | 7535 | PostgreSQL driver and toolkit for Go | 3 days ago |
go-sqlite3 (opens new window) | 6773 | sqlite3 driver for go using database/sql | 24 days ago |
go-mssqldb (opens new window) | 1750 | Microsoft SQL server driver written in go language | 2 months ago |
scany (opens new window) | 968 | Library for scanning data from a database into Go structs and more | 5 months ago |
go-oci8 (opens new window) | 608 | Oracle driver for Go using database/sql | 2 years ago |
godror (opens new window) | 450 | GO DRiver for ORacle DB | 21 days ago |
firebirdsql (opens new window) | 201 | Firebird RDBMS sql driver for Go (golang) | 2 months ago |
sqinn-go (opens new window) | 139 | SQLite with pure Go | 2 years ago |
go-adodb (opens new window) | 133 | Microsoft ActiveX Object DataBase driver for go that using exp/sql | a year ago |
calcite-avatica-go (opens new window) | 109 | Mirror of Apache Calcite - Avatica Go SQL Driver | 22 days ago |
gofreetds (opens new window) | 109 | Go Sql Server database driver. | 3 years ago |
bgc (opens new window) | 20 | Datastore Connectivity for BigQuery in go | 3 years ago |
pig (opens new window) | 13 | Simple pgx wrapper to execute and scan query results | 2 years ago |
# NoSQL Databases
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-redis (opens new window) | 17697 | Redis Go client | a day ago |
redigo (opens new window) | 9578 | Go client for Redis | 2 months ago |
mongo-go-driver (opens new window) | 7548 | The Official Golang driver for MongoDB | 10 hours ago |
mgo (opens new window) | 1963 | The MongoDB driver for Go | 2 years ago |
rethinkdb-go (opens new window) | 1635 | Go language driver for RethinkDB | 20 days ago |
gomemcache (opens new window) | 1630 | Go Memcached client library #golang | 2 months ago |
qmgo (opens new window) | 1163 | Qmgo - The Go driver for MongoDB. It‘s based on official mongo-go-driver but easier to use like Mgo. | a month ago |
mgm (opens new window) | 679 | Mongo Go Models (mgm) is a fast and simple MongoDB ODM for Go (based on official Mongo Go Driver) | 6 months ago |
redeo (opens new window) | 426 | High-performance framework for building redis-protocol compatible TCP servers/services | 7 months ago |
aerospike-client-go (opens new window) | 411 | Aerospike Client Go | 8 days ago |
neoism (opens new window) | 389 | Neo4j client for Golang | 3 years ago |
gocb (opens new window) | 344 | The Couchbase Go SDK | 36 minutes ago |
go-rejson (opens new window) | 321 | Golang client for redislabs' ReJSON module with support for multilple redis clients (redigo, go-redis) | 4 months ago |
go-couchbase (opens new window) | 315 | Couchbase client in Go | 8 months ago |
godis (opens new window) | 109 | redis client implement by golang, inspired by jedis. | 3 years ago |
Neo4j-GO (opens new window) | 76 | Neo4j REST Client in golang | 5 years ago |
arangolite (opens new window) | 73 | Lightweight Golang driver for ArangoDB | 2 years ago |
go-pilosa (opens new window) | 58 | Go client library for Pilosa | 10 months ago |
goforestdb (opens new window) | 33 | Go bindings for ForestDB | 7 years ago |
goriak (opens new window) | 30 | goriak - Go language driver for Riak KV | 2 years ago |
neo4j (opens new window) | 27 | Neo4j Rest API Client for Go lang | 8 years ago |
xredis (opens new window) | 19 | Go Redis Client | 4 years ago |
gocosmos (opens new window) | 17 | Go database/sql driver for Azure Cosmos DB SQL API | 15 days ago |
godscache (opens new window) | 11 | An unofficial Google Cloud Platform Go Datastore wrapper that adds caching using memcached. For App Engine Flexible, Compute Engine, Kubernetes Engine, and more. | 5 years ago |
asc (opens new window) | 9 | Datastore Connectivity for Aerospike for go | 4 years ago |
# Search and Analytic Databases
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
bleve (opens new window) | 9187 | A modern text indexing library for go | 5 days ago |
elastic (opens new window) | 7198 | Deprecated: Use the official Elasticsearch client for Go at https://github.com/elastic/go-elasticsearch | 15 days ago |
riot (opens new window) | 6099 | Go Open Source, Distributed, Simple and efficient Search Engine; Warning: This is V1 and beta version, because of big memory consume, and the V2 will be rewrite all code. | 3 years ago |
go-elasticsearch (opens new window) | 5077 | The official Go client for Elasticsearch | 12 days ago |
elasticsql (opens new window) | 1076 | convert sql to elasticsearch DSL in golang(go) | 2 days ago |
elastigo (opens new window) | 951 | A Go (golang) based Elasticsearch client library. | 5 years ago |
skizze (opens new window) | 88 | A probabilistic data structure service and storage | 7 years ago |
goes (opens new window) | 29 | A library to interact with Elasticsearch in Go! | 3 years ago |
# Multiple Backends
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
cayley (opens new window) | 14609 | An open-source graph database | a day ago |
gokv (opens new window) | 571 | Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) | 5 months ago |
cachego (opens new window) | 285 | Golang Cache component - Multiple drivers | 2 months ago |
dsc (opens new window) | 27 | Datastore Connectivity in go | 2 months ago |
# Date and Time
- Libraries for working with dates and times.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
now (opens new window) | 4205 | Now is a time toolkit for golang | 3 months ago |
carbon (opens new window) | 3370 | A simple, semantic and developer-friendly golang package for datetime | 15 days ago |
dateparse (opens new window) | 1890 | GoLang Parse many date strings without knowing format in advance. | 13 hours ago |
carbon (opens new window) | 763 | Carbon for Golang, an extension for Time | a year ago |
durafmt (opens new window) | 465 | 🕗 Better time duration formatting in Go! | 2 years ago |
timeutil (opens new window) | 193 | timeutil - useful extensions (Timedelta, Strftime, ...) to the golang's time package | 5 years ago |
gostradamus (opens new window) | 181 | Gostradamus: Better DateTimes for Go 🕰️ | 8 months ago |
go-persian-calendar (opens new window) | 165 | The implementation of Persian (Solar Hijri) Calendar in Go | a month ago |
iso8601 (opens new window) | 126 | A fast ISO8601 date parser for Go | a month ago |
date (opens new window) | 114 | A Go package for working with dates | a month ago |
timespan (opens new window) | 82 | Golang package to manipulate time intervals. | 4 years ago |
go-str2duration (opens new window) | 77 | Convert string to duration in golang | 8 months ago |
go-sunrise (opens new window) | 74 | Go package for calculating the sunrise and sunset times for a given location | 3 months ago |
feiertage (opens new window) | 43 | Gesetzliche Feiertage und mehr in Deutschland und Österreich (Bank holidays/public holidays in Austria and Germany) | 9 months ago |
kair (opens new window) | 25 | 🕐 Date and Time - Golang Formatting Library | 3 years ago |
cronrange (opens new window) | 18 | time range expression in cron style | a year ago |
nulltime (opens new window) | 14 | 6 years ago | |
strftime (opens new window) | 12 | C99-compatible strftime formatter for use with Go time.Time instances. | 5 years ago |
tuesday (opens new window) | 12 | Ruby-compatible strftime for golang | 2 years ago |
go-week (opens new window) | 8 | A Go package to work with ISO 8601 week dates | 2 years ago |
# Distributed Systems
- Packages that help with building Distributed Systems.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
etcd (opens new window) | 44154 | Distributed reliable key-value store for the most critical data of a distributed system | 12 hours ago |
kit (opens new window) | 25278 | A standard library for microservices. | 2 months ago |
go-zero (opens new window) | 25120 | A cloud-native Go microservices framework with cli tool for productivity. | 12 hours ago |
kratos (opens new window) | 21126 | Your ultimate Go microservices framework for the cloud-native era. | 3 hours ago |
go-micro (opens new window) | 20712 | A Go microservices framework | a day ago |
grpc-go (opens new window) | 18563 | The Go language implementation of gRPC. HTTP/2 based RPC | 5 hours ago |
nats-server (opens new window) | 13336 | High-Performance server for NATS.io, the cloud and edge native messaging system. | 34 minutes ago |
micro (opens new window) | 11843 | API first development platform | 11 days ago |
libzmq (opens new window) | 8670 | ZeroMQ core engine in C++, implements ZMTP/3.1 | 18 days ago |
rpcx (opens new window) | 7681 | Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱! build for cloud! | 3 days ago |
raft (opens new window) | 7304 | Golang implementation of the Raft consensus protocol | 21 days ago |
lura (opens new window) | 5675 | Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation | 11 days ago |
torrent (opens new window) | 4873 | Full-featured BitTorrent client package and utilities | 16 days ago |
dragonboat (opens new window) | 4696 | A feature complete and high performance multi-group Raft library in Go. | a month ago |
emitter (opens new window) | 3602 | High performance, distributed and low latency publish-subscribe platform. | 8 days ago |
gleam (opens new window) | 3226 | Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly. | 2 years ago |
glow (opens new window) | 3148 | 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, https://github.com/chrislusf/gleam , which is more flexible and more performant. | 5 years ago |
liftbridge (opens new window) | 2470 | Lightweight, fault-tolerant message streams. | 25 days ago |
hprose-golang (opens new window) | 1240 | Hprose is a cross-language RPC. This project is Hprose for Golang. | 6 months ago |
go-doudou (opens new window) | 1209 | go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well. | 5 days ago |
redislock (opens new window) | 1083 | Simplified distributed locking implementation using Redis | 12 days ago |
rain (opens new window) | 857 | 🌧 BitTorrent client and library in Go | 11 hours ago |
arpc (opens new window) | 788 | More effective network communication, two-way calling, notify and broadcast supported. | 2 months ago |
ringpop-go (opens new window) | 786 | Scalable, fault-tolerant application-layer sharding for Go applications | 5 months ago |
go-health (opens new window) | 703 | Library for enabling asynchronous health checks in your service | 15 days ago |
gorpc (opens new window) | 680 | Simple, fast and scalable golang rpc library for high load | 10 months ago |
consistent (opens new window) | 608 | Consistent hashing with bounded loads in Golang | 8 months ago |
go-sundheit (opens new window) | 511 | A library built to provide support for defining service health for golang services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics. | 3 months ago |
digota (opens new window) | 481 | ecommerce microservice | 2 years ago |
go-jump (opens new window) | 367 | go-jump: Jump consistent hashing | 2 years ago |
sleuth (opens new window) | 367 | A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services | a month ago |
jsonrpc (opens new window) | 280 | A simple go implementation of json rpc 2.0 client over http | 5 months ago |
dht (opens new window) | 268 | dht is used by anacrolix/torrent, and is intended for use as a library in other projects both torrent related and otherwise | 4 months ago |
jsonrpc (opens new window) | 180 | The jsonrpc package helps implement of JSON-RPC 2.0 | 3 months ago |
outboxer (opens new window) | 137 | A library that implements the outboxer pattern in go | 20 hours ago |
doublejump (opens new window) | 88 | A revamped Google's jump consistent hash | 10 months ago |
semaphore (opens new window) | 85 | Take control of your data, connect with anything, and expose it anywhere through protocols such as HTTP, GraphQL, and gRPC. | 5 months ago |
dot (opens new window) | 80 | distributed data sync with operational transformation/transforms | 4 years ago |
celeriac.v1 (opens new window) | 71 | Golang client library for adding support for interacting and monitoring Celery workers, tasks and events. | 3 months ago |
go-mysql-lock (opens new window) | 55 | MySQL Backed Locking Primitive | 2 months ago |
flowgraph (opens new window) | 52 | Flowgraph package for scalable asynchronous system development | 2 years ago |
go-pdu (opens new window) | 47 | Go implementation of PDU - A decentralized SNS backbone | an hour ago |
drmaa (opens new window) | 44 | Compute cluster (HPC) job submission library for Go (#golang) based on the open DRMAA standard. | a year ago |
micro (opens new window) | 22 | A Go distributed systems development framework | 2 months ago |
consistenthash (opens new window) | 19 | A Go library that implements Consistent Hashing | a year ago |
dynatomic (opens new window) | 15 | Dynatomic is a library for using dynamodb as an atomic counter | 3 years ago |
failured (opens new window) | 10 | Adaptive Accrual Failure Detector | 2 years ago |
# Dynamic DNS
- Tools for updating dynamic DNS records.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
godns (opens new window) | 1332 | A dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go. | 2 months ago |
ddns (opens new window) | 237 | Personal DDNS client with Digital Ocean Networking DNS as backend. | 6 months ago |
- Libraries and tools that implement email creation and sending.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
MailHog (opens new window) | 12367 | Web and API based SMTP testing | 3 months ago |
hermes (opens new window) | 2655 | Golang package that generates clean, responsive HTML e-mails for sending transactional mail | 18 days ago |
email (opens new window) | 2390 | Robust and flexible email library for Go | a month ago |
go-imap (opens new window) | 1817 | 📥 An IMAP library for clients and servers | 12 hours ago |
email-verifier (opens new window) | 924 | ✅ A Go library for email verification without sending any emails. | a day ago |
sendgrid-go (opens new window) | 916 | The Official Twilio SendGrid Golang API Library | 2 days ago |
mailgun-go (opens new window) | 656 | Go library for sending mail with the Mailgun API. | 7 days ago |
go-simple-mail (opens new window) | 501 | Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP. | 4 days ago |
go-message (opens new window) | 322 | ✉️ A streaming Go library for the Internet Message Format and mail messages | 4 days ago |
douceur (opens new window) | 230 | A simple CSS parser and inliner in Go | a year ago |
hectane (opens new window) | 220 | Lightweight SMTP client written in Go | 3 years ago |
mailchain-legacy (opens new window) | 139 | Using Mailchain, blockchain users can now send and receive rich-media HTML messages with attachments via a blockchain address. | a year ago |
go-premailer (opens new window) | 113 | Inline styling for html mail in golang | 4 months ago |
go-dkim (opens new window) | 90 | DKIM package for golang | 3 years ago |
smtp (opens new window) | 75 | MailHog SMTP Protocol | 2 years ago |
go-email-validator (opens new window) | 51 | 📧 Golang Email address validator | 6 days ago |
# Embeddable Scripting Languages
- Embedding other languages inside your go code.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gopher-lua (opens new window) | 5583 | GopherLua: VM and compiler for Lua in Go | 5 days ago |
goja (opens new window) | 4108 | ECMAScript/JavaScript engine in pure Go | 2 days ago |
expr (opens new window) | 3932 | Expression language and expression evaluation for Go | 13 days ago |
tengo (opens new window) | 3246 | A fast script language for Go | 19 days ago |
go-lua (opens new window) | 2748 | A Lua VM in Go | 5 months ago |
cel-go (opens new window) | 1714 | Fast, portable, non-Turing complete expression evaluation with gradual typing (Go) | 13 hours ago |
go-python (opens new window) | 1511 | naive go bindings to the CPython2 C-API | 15 days ago |
anko (opens new window) | 1356 | Scriptable interpreter written in golang | 18 days ago |
core (opens new window) | 1316 | MetaCall: The ultimate polyglot programming experience. | 6 days ago |
go-php (opens new window) | 900 | PHP bindings for the Go programming language (Golang) | 2 years ago |
go-duktape (opens new window) | 779 | [abandoned] Duktape JavaScript engine bindings for Go | 2 years ago |
gval (opens new window) | 641 | Expression evaluation in golang | 5 months ago |
golua (opens new window) | 617 | Go bindings for Lua C API - in progress | 2 years ago |
gisp (opens new window) | 502 | Simple LISP in Go | 6 years ago |
gentee (opens new window) | 112 | Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang). | 6 months ago |
binder (opens new window) | 66 | High level go to Lua binder. Write less, do more. | a year ago |
purl (opens new window) | 38 | Perl, but fluffy like a cat! | 9 years ago |
ecal (opens new window) | 34 | A simple embeddable scripting language which supports concurrent event processing. | 2 years ago |
ngaro (opens new window) | 25 | An embeddable implementation of the Ngaro Virtual Machine for Go programs | 5 years ago |
# Error Handling
- Libraries for handling errors.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
errors (opens new window) | 8060 | Simple error handling primitives | 2 years ago |
go-multierror (opens new window) | 2006 | A Go (golang) package for representing a list of errors as a single error. | 8 days ago |
eris (opens new window) | 1323 | Error handling library with readable stack traces and flexible formatting support 🎆 | 6 months ago |
errorx (opens new window) | 995 | A comprehensive error handling library for Go | a month ago |
tracerr (opens new window) | 811 | Golang errors with stack trace and source fragments. | 3 months ago |
errlog (opens new window) | 452 | Reduce debugging time while programming Go. Use static and stack-trace analysis to determine which func call causes the error. | a month ago |
emperror (opens new window) | 310 | The Emperor takes care of all errors personally | 3 years ago |
errors (opens new window) | 180 | Drop-in replacement for the standard library errors package and github.com/pkg/errors | a year ago |
errors (opens new window) | 52 | A drop-in replacement for Go errors, with some added sugar! Unwrap user-friendly messages, HTTP status code, easy wrapping with multiple error types. | 2 months ago |
falcon (opens new window) | 9 | A Simple Yet Highly Powerful Package For Error Handling | 4 years ago |
errors (opens new window) | 8 | Simple and efficient error package | a year ago |
errors (opens new window) | 5 | Simple golang error handling with classification primitives. | 4 years ago |
# File Handling
- Libraries for handling files and file systems.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
afero (opens new window) | 5277 | A FileSystem Abstraction System for Go | 13 hours ago |
pdfcpu (opens new window) | 5177 | A PDF processor written in Go. | 18 hours ago |
gdu (opens new window) | 2684 | Fast disk usage analyzer with console interface written in Go | 3 days ago |
todo.txt (opens new window) | 1954 | ‼️ A complete primer on the whys and hows of todo.txt. | 2 months ago |
notify (opens new window) | 835 | File system event notification library on steroids. | 5 months ago |
copy (opens new window) | 580 | Go copy directory recursively | 3 days ago |
afs (opens new window) | 256 | Abstract File Storage | 5 days ago |
vfs (opens new window) | 248 | Pluggable, extensible virtual file system for Go | a month ago |
bigfile (opens new window) | 241 | Bigfile -- a file transfer system that supports http, rpc and ftp protocol https://bigfile.site | 6 months ago |
go-exiftool (opens new window) | 178 | Golang wrapper for Exiftool : extract as much metadata as possible (EXIF, ...) from files (pictures, pdf, office documents, ...) | 2 months ago |
fs (opens new window) | 131 | Package fs provides filesystem-related functions. | 2 years ago |
go-csv-tag (opens new window) | 108 | Read csv file from go using tags | 22 days ago |
skywalker (opens new window) | 90 | A package to allow one to concurrently go through a filesystem with ease | 2 years ago |
checksum (opens new window) | 88 | Compute message digest for large files in Go | 5 months ago |
parquet (opens new window) | 83 | A library for reading and writing parquet files. | 19 days ago |
opc (opens new window) | 74 | Go implementation of the Open Packaging Conventions (OPC) | 2 years ago |
tarfs (opens new window) | 56 | An implementation of the FileSystem interface for tar files. | 3 years ago |
baraka (opens new window) | 50 | a tool for handling file uploads simple | 10 months ago |
go-gtfs (opens new window) | 37 | Load GTFS files in golang | 22 days ago |
flop (opens new window) | 34 | Go file operations library chasing GNU APIs. | 2 years ago |
gut (opens new window) | 26 | 🍱 yet another collection of go utilities & tools | 3 years ago |
go-decent-copy (opens new window) | 19 | copy files for humans | 4 years ago |
todotxt (opens new window) | 19 | Parser for todo.txt files in Go ✅ | 2 months ago |
higgs (opens new window) | 17 | A tiny cross-platform Go library to hide/unhide files and directories | 2 years ago |
pathtype (opens new window) | 12 | Add a type for paths in Go. | 2 years ago |
# Financial
- Packages for accounting and finance.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
decimal (opens new window) | 5261 | Arbitrary-precision fixed-point decimal numbers in go | 16 days ago |
ticker (opens new window) | 4621 | Terminal stock ticker with live updates and position tracking | 2 months ago |
go-money (opens new window) | 1340 | Go implementation of Fowler's Money pattern | 2 months ago |
accounting (opens new window) | 821 | money and currency formatting for golang | a year ago |
techan (opens new window) | 736 | Technical Analysis Library for Golang | a year ago |
currency (opens new window) | 412 | Currency handling for Go. | 4 months ago |
ach (opens new window) | 378 | ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available. | 14 hours ago |
orderbook (opens new window) | 346 | Matching Engine for Limit Order Book in Golang | a month ago |
go-finance (opens new window) | 150 | Go library containing a collection of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. | 2 years ago |
transaction (opens new window) | 123 | Embedded database for accounts transactions. | a year ago |
sleet (opens new window) | 122 | Payment abstraction library - one interface for multiple payment processors ( inspired by Ruby's ActiveMerchant ) | 6 days ago |
ofxgo (opens new window) | 117 | Golang library for querying and parsing OFX | 5 months ago |
vat (opens new window) | 101 | Go package for dealing with EU VAT. Does VAT number validation & rates retrieval. | 2 years ago |
go-finnhub (opens new window) | 79 | Simple and easy to use client for stock market, forex and crypto data from finnhub.io written in Go. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges | 4 years ago |
currency (opens new window) | 52 | A currency computations package. | 2 years ago |
payme (opens new window) | 22 | QR code generator (ASCII & PNG) for SEPA payments | 6 months ago |
go-finance (opens new window) | 13 | Finance related Go functions (e.g. exchange rates, VAT number checking, …) | 2 months ago |
# Forms
- Libraries for working with forms.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
nosurf (opens new window) | 1427 | CSRF protection middleware for Go. | 9 months ago |
csrf (opens new window) | 900 | Package gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services 🔒 | 8 days ago |
binding (opens new window) | 795 | Reflectionless data binding for Go's net/http (not actively maintained) | 5 years ago |
form (opens new window) | 617 | 🚂 Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support. | a month ago |
conform (opens new window) | 308 | Trims, sanitizes & scrubs data based on struct tags (go, golang) | 8 months ago |
formam (opens new window) | 181 | a package for decode form's values into struct in Go | 9 months ago |
forms (opens new window) | 133 | A lightweight go library for parsing form data or json from an http.Request. | 8 months ago |
qs (opens new window) | 67 | Go module for encoding structs into URL query parameters | 8 months ago |
bind (opens new window) | 28 | 9 years ago | |
queryparam (opens new window) | 17 | Go package to easily convert a URL's query parameters/values into usable struct values of the correct types. | 3 years ago |
# Functional
- Packages to support functional programming in Go.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-underscore (opens new window) | 1290 | Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. | 5 months ago |
fpGo (opens new window) | 323 | Monad, Functional Programming features for Golang | a year ago |
fuego (opens new window) | 141 | Functional Experiment in Golang | 5 months ago |
gofp (opens new window) | 139 | A super simple Lodash like utility library with essential functions that empowers the development in Go | 2 years ago |
# Game Development
- Awesome game development libraries.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
ebiten (opens new window) | 8540 | Ebitengine - A dead simple 2D game engine for Go | 2 days ago |
leaf (opens new window) | 4938 | A game server framework in Go (golang) | 10 months ago |
pixel (opens new window) | 4279 | A hand-crafted 2D game library in Go | 4 months ago |
nano (opens new window) | 2434 | Lightweight, facility, high performance golang based game server framework | 2 months ago |
engine (opens new window) | 2401 | Go 3D Game Engine (http://g3n.rocks) | 2 months ago |
goworld (opens new window) | 2378 | Scalable Distributed Game Server Engine with Hot Swapping in Golang | a year ago |
go-sdl2 (opens new window) | 2006 | SDL2 binding for Go | 3 days ago |
pitaya (opens new window) | 1901 | Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. | 18 hours ago |
engo (opens new window) | 1630 | Engo is an open-source 2D game engine written in Go. | 11 days ago |
oak (opens new window) | 1429 | A pure Go game engine | 17 days ago |
termloop (opens new window) | 1361 | Terminal-based game engine for Go, built on top of Termbox | 2 years ago |
gonet (opens new window) | 1229 | A Game Server Skeleton in golang. | 6 years ago |
raylib-go (opens new window) | 1029 | Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming. | 19 days ago |
engine (opens new window) | 586 | Azul3D - A 3D game engine written in Go! | 2 years ago |
go-astar (opens new window) | 558 | Go implementation of the A* search algorithm | 2 years ago |
go3d (opens new window) | 285 | A performance oriented 2D/3D math package for Go | a year ago |
tile (opens new window) | 109 | Tile is a 2D grid engine, built with data and cache friendly ways, includes pathfinding and observers. | 8 months ago |
prototype (opens new window) | 81 | Simple 2D game prototyping framework. | 10 months ago |
# Generation and Generics
- Tools to enhance the language with features like generics via code generation.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-linq (opens new window) | 3337 | .NET LINQ capabilities in Go | a year ago |
jennifer (opens new window) | 2966 | Jennifer is a code generator for Go | 6 days ago |
gen (opens new window) | 1428 | Type-driven code generation for Go | 4 years ago |
goderive (opens new window) | 1121 | Derives and generates mundane golang functions that you do not want to maintain yourself | 4 months ago |
gowrap (opens new window) | 784 | GoWrap is a command line tool for generating decorators for Go interfaces | a month ago |
go-enum (opens new window) | 532 | An enum generator for go | a day ago |
interfaces (opens new window) | 398 | Code generation tools for Go. | a month ago |
goverter (opens new window) | 293 | Generate type-safe Go converters by simply defining an interface | 15 hours ago |
pkgreflect (opens new window) | 104 | A Go preprocessor for package scoped reflection | 6 years ago |
gotype (opens new window) | 54 | Golang source code parsing, usage like reflect package | a year ago |
efaceconv (opens new window) | 48 | 6 years ago | |
GENERIS (opens new window) | 42 | Versatile Go code generator. | a year ago |
go-xray (opens new window) | 26 | Helpers for making the use of reflection easier | 6 months ago |
typeregistry (opens new window) | 20 | create type dynamically in Golang | 3 years ago |
# Geographic
- Geographic tools and servers.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
tile38 (opens new window) | 8632 | Real-time Geospatial and Geofencing | 3 days ago |
geo (opens new window) | 1556 | S2 geometry library in Go | 20 days ago |
mbtileserver (opens new window) | 513 | Basic Go server for mbtiles | 5 months ago |
osm (opens new window) | 288 | General purpose library for reading, writing and working with OpenStreetMap data | 8 months ago |
godal (opens new window) | 100 | golang wrapper for github.com/OSGEO/gdal | 4 months ago |
wgs84 (opens new window) | 99 | A zero-dependency Go package for coordinate transformations. | 3 months ago |
simplefeatures (opens new window) | 89 | Simple Features is a pure Go Implementation of the OpenGIS Simple Feature Access Specification | 11 days ago |
geoserver (opens new window) | 83 | geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API. | 5 months ago |
gismanager (opens new window) | 50 | Publish Your GIS Data(Vector Data) to PostGIS and Geoserver | 5 years ago |
pbf (opens new window) | 45 | OpenStreetMap PBF golang parser | 10 months ago |
s2-geojson (opens new window) | 25 | Draw a polygon on the map or paste a geoJSON and explore how the s2.RegionCoverer covers it with S2 cells depending on the min and max levels | 3 years ago |
# Go Compilers
- Tools for compiling Go to other languages.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gopherjs (opens new window) | 12051 | A compiler from Go to JavaScript for running Go code in a browser | 19 hours ago |
tardisgo (opens new window) | 426 | Golang->Haxe->CPP/CSharp/Java/JavaScript transpiler | 7 years ago |
c4go (opens new window) | 337 | Transpiling C code to Go code | 5 months ago |
f4go (opens new window) | 36 | Transpiling fortran code to golang code | 10 months ago |
# Goroutines
- Tools for managing and working with Goroutines.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
ants (opens new window) | 10797 | 🐜🐜🐜 ants is a high-performance and low-cost goroutine pool in Go./ ants 是一个高性能且低损耗的 goroutine 池。 | 16 days ago |
tunny (opens new window) | 3651 | A goroutine pool for Go | 5 months ago |
goworker (opens new window) | 2745 | goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers. | a year ago |
workerpool (opens new window) | 1116 | Concurrency limiting goroutine pool | a month ago |
pond (opens new window) | 943 | 🔘 Minimalistic and High-performance goroutine worker pool written in Go | 4 months ago |
grpool (opens new window) | 731 | Lightweight Goroutine pool | 5 years ago |
pool (opens new window) | 720 | 🚤 a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation | 2 years ago |
gowp (opens new window) | 471 | golang worker pool , Concurrency limiting goroutine pool | 2 months ago |
go-floc (opens new window) | 262 | Floc: Orchestrate goroutines with ease. | 2 years ago |
go-flow (opens new window) | 214 | Simply way to control goroutines execution order based on dependencies | 4 years ago |
artifex (opens new window) | 175 | Simple in-memory job queue for Golang using worker-based dispatching | 9 months ago |
go-workers (opens new window) | 160 | 👷 Library for safely running groups of workers concurrently or consecutively that require input and output through channels | 2 years ago |
semaphore (opens new window) | 160 | Fast resizable golang semaphore primitive | 2 years ago |
errgroup (opens new window) | 148 | errgroup with goroutine worker limits | 7 months ago |
async (opens new window) | 130 | Synchronization and asynchronous computation package for Go | 9 minutes ago |
cyclicbarrier (opens new window) | 129 | CyclicBarrier golang implementation | 3 years ago |
async (opens new window) | 123 | 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. | 3 years ago |
gollback (opens new window) | 110 | Go asynchronous simple function utilities, for managing execution of closures and callbacks | 6 months ago |
semaphore (opens new window) | 96 | 🚦 Semaphore pattern implementation with timeout of lock/unlock operations. | 3 years ago |
Hunch (opens new window) | 95 | Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive. | a year ago |
threadpool (opens new window) | 94 | Golang simple thread pool implementation | 3 years ago |
worker-pool (opens new window) | 87 | Go simple async worker pool | 3 years ago |
gpool (opens new window) | 86 | gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore. | 4 years ago |
goccm (opens new window) | 66 | Limits the number of goroutines that are allowed to run concurrently | 7 months ago |
nursery (opens new window) | 64 | Structured Concurrency in Go | 2 years ago |
gowl (opens new window) | 59 | Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status. | 5 months ago |
routine (opens new window) | 57 | go routine control, abstraction of the Main and some useful Executors.如果你不会管理Goroutine的话,用它 | 3 years ago |
gohive (opens new window) | 44 | 🐝 A Highly Performant and easy to use goroutine pool for Go | 2 years ago |
kyoo (opens new window) | 42 | Unlimited job queue for go, using a pool of concurrent workers processing the job queue entries | 6 months ago |
go-waitgroup (opens new window) | 41 | A sync.WaitGroup with error handling and concurrency control | 2 months ago |
parallel-fn (opens new window) | 35 | Run functions in parallel ☄ | 6 years ago |
go-trylock (opens new window) | 33 | TryLock support on read-write lock for Golang | 2 years ago |
channelify (opens new window) | 27 | Make functions return a channel for parallel processing via go routines. | 2 years ago |
stl (opens new window) | 27 | Software Transactional Locks | 3 years ago |
execpool (opens new window) | 16 | A pool that spins up a given number of processes in advance and attaches stdin and stdout when needed. Very similar to FastCGI but works for any command. | 2 years ago |
breaker (opens new window) | 15 | 🚧 Flexible mechanism to make execution flow interruptible. | 2 years ago |
concurrency-limiter (opens new window) | 15 | 7 months ago | |
queue (opens new window) | 14 | package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more. | 4 years ago |
conexec (opens new window) | 13 | A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking. | 3 years ago |
go-tools (opens new window) | 12 | A collection of tools for Golang | 4 years ago |
hands (opens new window) | 10 | Hands is a process controller used to control the execution and return strategies of multiple goroutines. | a year ago |
# GUI
- Libraries for building GUI Applications.
# Toolkits
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
fyne (opens new window) | 20983 | Cross platform GUI toolkit in Go inspired by Material Design | 2 days ago |
webview (opens new window) | 11362 | Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows) | 4 days ago |
qt (opens new window) | 9913 | Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly | 4 months ago |
ui (opens new window) | 8285 | Platform-native GUI library for Go. | a year ago |
go-app (opens new window) | 7172 | A package to build progressive web apps with Go programming language and WebAssembly. | 8 days ago |
walk (opens new window) | 6509 | A Windows GUI toolkit for the Go Programming Language | a year ago |
go-astilectron (opens new window) | 4795 | Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) | 12 days ago |
go-sciter (opens new window) | 2529 | Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development | 3 months ago |
gotk3 (opens new window) | 1934 | Go bindings for GTK3 | 3 months ago |
gowd (opens new window) | 402 | Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs) | 5 months ago |
# Interaction
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
robotgo (opens new window) | 8567 | RobotGo, Go Native cross-platform GUI automation @vcaesar | a month ago |
systray (opens new window) | 2854 | a cross platfrom Go library to place an icon and menu in the notification area | 12 days ago |
gosx-notifier (opens new window) | 578 | gosx-notifier is a Go framework for sending desktop notifications to OSX 10.8 or higher | 3 years ago |
zenity (opens new window) | 525 | Zenity dialogs for Golang, Windows, macOS | 14 hours ago |
trayhost (opens new window) | 241 | Cross-platform Go library to place an icon in the host operating system's taskbar. | a month ago |
mac-sleep-notifier (opens new window) | 29 | macOS Sleep/ Wake notifications in golang | 4 years ago |
activity-tracker (opens new window) | 25 | A library to notify about any (pluggable) activity on your machine, and let you take action as needed | 4 years ago |
go-appindicator (opens new window) | 19 | 🚥 Go bindings for libappindicator3 C library | 3 years ago |
# Hardware
- Libraries, tools, and tutorials for interacting with hardware.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
arduino-cli (opens new window) | 3974 | Arduino command line tool | a day ago |
go-rpio (opens new window) | 2037 | 🔌 Raspberry Pi GPIO library for go-lang | a year ago |
ghw (opens new window) | 1456 | Go HardWare discovery/inspection library | 13 days ago |
emgo (opens new window) | 1029 | Emgo: Bare metal Go (language for programming embedded systems) | 2 years ago |
sysinfo (opens new window) | 442 | Sysinfo is a Go library providing Linux OS / kernel / hardware system information. | a month ago |
goroslib (opens new window) | 270 | ROS client library for the Go programming language | 13 days ago |
go-osc (opens new window) | 175 | Open Sound Control (OSC) library for Golang. Implemented in pure Go. | 7 months ago |
joystick (opens new window) | 45 | Go Joystick API | 4 months ago |
# Images
- Libraries for manipulating images.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gocv (opens new window) | 5651 | Go package for computer vision using OpenCV 4 and beyond. | a day ago |
imaginary (opens new window) | 5048 | Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing | 12 days ago |
imaging (opens new window) | 4797 | Imaging is a simple image processing package for Go | 2 months ago |
gg (opens new window) | 3993 | Go Graphics - 2D rendering in Go with a simple API. | 15 days ago |
bild (opens new window) | 3815 | Image processing algorithms in pure Go | a month ago |
ln (opens new window) | 3187 | 3D line art engine. | 4 years ago |
resize (opens new window) | 2955 | Pure golang image resizing | a year ago |
bimg (opens new window) | 2330 | Go package for fast high-level image processing powered by libvips C library | 15 days ago |
gowitness (opens new window) | 2297 | 🔍 gowitness - a golang, web screenshot utility using Chrome Headless | 14 days ago |
pt (opens new window) | 2056 | A path tracer written in Go. | 4 years ago |
svgo (opens new window) | 2030 | Go Language Library for SVG generation | 8 months ago |
picfit (opens new window) | 1874 | An image resizing server written in Go | 25 days ago |
smartcrop (opens new window) | 1747 | smartcrop finds good image crops for arbitrary crop sizes | a month ago |
gift (opens new window) | 1666 | Go Image Filtering Toolkit | 3 years ago |
imagick (opens new window) | 1601 | Go binding to ImageMagick's MagickWand C API | 23 days ago |
go-opencv (opens new window) | 1306 | Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv | 4 months ago |
canvas (opens new window) | 1296 | Cairo in Go: vector to raster, SVG, PDF, EPS, WASM, OpenGL, Gio, etc. | 14 days ago |
geopattern (opens new window) | 1244 | 📐 Create beautiful generative image patterns from a string in golang. | 5 years ago |
stegify (opens new window) | 1117 | 🔍 Go tool for LSB steganography, capable of hiding any file within an image. | 4 months ago |
govips (opens new window) | 949 | A lightning fast image processing and resizing library for Go | 7 days ago |
image2ascii (opens new window) | 785 | 🌁 Convert image to ASCII | a year ago |
goimagehash (opens new window) | 630 | Go Perceptual image hashing package | 3 months ago |
draft (opens new window) | 570 | Generate High Level Cloud Architecture diagrams using YAML syntax. | 2 years ago |
govatar (opens new window) | 568 | Avatar generation library for GO language | 10 months ago |
mort (opens new window) | 483 | Storage and image processing server written in Go | 3 months ago |
go-nude (opens new window) | 377 | Nudity detection with Go. | a year ago |
steganography (opens new window) | 252 | Pure Golang Library that allows LSB steganography on images using ZERO dependencies | 4 months ago |
darkroom (opens new window) | 215 | a month ago | |
rez (opens new window) | 210 | Image resizing in pure Go and SIMD | 6 years ago |
mergi (opens new window) | 205 | go library for image programming (merge, crop, resize, watermark, animate, ease, transit) | 3 years ago |
gltf (opens new window) | 203 | 👓 Go library for encoding glTF 2.0 files | 15 days ago |
img (opens new window) | 150 | A selection of image manipulation tools | 8 years ago |
go-webp (opens new window) | 145 | Simple and fast webp library for golang | a month ago |
go-cairo (opens new window) | 135 | Go binding for the cairo graphics library | 3 months ago |
cameron (opens new window) | 102 | An avatar generator for Go. | a year ago |
gridder (opens new window) | 64 | A Grid based 2D Graphics library | 2 years ago |
webp-server (opens new window) | 62 | Simple and minimal image server capable of storing, resizing, converting and caching images. | 3 years ago |
go-gd (opens new window) | 59 | Go bingings for GD (http://www.boutell.com/gd/) | 5 years ago |
goimghdr (opens new window) | 41 | The imghdr module determines the type of image contained in a file for go | 4 years ago |
tga (opens new window) | 33 | Go package for decoding and encoding TARGA image format | 8 years ago |
go-webcolors (opens new window) | 27 | Port of webcolors library from Python to Go | 8 years ago |
mpo (opens new window) | 11 | JPEG-MPO Decoder / Converter Library and CLI Tool | 4 months ago |
scout (opens new window) | 10 | Scout is a standalone open source software solution for DIY video security. | 7 months ago |
# IoT -> Internet of Things
- Libraries for programming devices of the IoT.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gobot (opens new window) | 8364 | Golang framework for robotics, drones, and the Internet of Things (IoT) | 11 hours ago |
flogo (opens new window) | 2295 | Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps. | 4 months ago |
mainflux (opens new window) | 2114 | Industrial IoT Messaging and Device Management Platform | 30 minutes ago |
gatt (opens new window) | 1076 | Gatt is a Go package for building Bluetooth Low Energy peripherals | a year ago |
heedy (opens new window) | 370 | An aggregator for personal metrics, and an extensible analysis engine | a year ago |
devices (opens new window) | 260 | Suite of libraries for IoT devices (written in Go), experimental for x/exp/io | 7 years ago |
huego (opens new window) | 235 | An extensive Philips Hue client library for Go with an emphasis on simplicity | a month ago |
sensorbee (opens new window) | 221 | Lightweight stream processing engine for IoT | 4 years ago |
iot (opens new window) | 63 | A Go client for Google IoT Core | 4 years ago |
eywa (opens new window) | 60 | Make IoT a lot more fun with data. | 6 years ago |
# Job Scheduler
- Libraries for scheduling jobs.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gocron (opens new window) | 3753 | Easy and fluent Go cron scheduling. This is a fork from https://github.com/jasonlvhit/gocron | 8 days ago |
gocron (opens new window) | 3263 | A Golang Job Scheduling Package. | 2 years ago |
go-quartz (opens new window) | 1325 | Minimalist and zero-dependency scheduling library for Go | 2 days ago |
gron (opens new window) | 983 | gron, Cron Jobs in Go. | 3 months ago |
jobrunner (opens new window) | 974 | Framework for performing work asynchronously, outside of the request flow | 3 years ago |
jobs (opens new window) | 495 | A persistent and flexible background jobs library for go. | 5 years ago |
scheduler (opens new window) | 430 | Job scheduling made easy. | a year ago |
gronx (opens new window) | 289 | Lightweight, fast and dependency-free Cron expression parser (due checker, next/prev due date finder), task runner, job scheduler and/or daemon for Golang (tested on v1.13+) and standalone usage. If you are bold, use it to replace crontab entirely. | 12 days ago |
go-cron (opens new window) | 218 | 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. | 3 years ago |
tasks (opens new window) | 167 | Package tasks is an easy to use in-process scheduler for recurring tasks in Go | a month ago |
clockwerk (opens new window) | 139 | Job Scheduling Library | 4 years ago |
leprechaun (opens new window) | 99 | You had one job, or more then one, which can be done in steps | a year ago |
sched (opens new window) | 26 | A job scheduler for Go with the ability to fast-forward time. | 2 years ago |
cronticker (opens new window) | 10 | Golang ticker that works with Cron scheduling. | 3 years ago |
# JSON
- Libraries for working with JSON.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gjson (opens new window) | 12658 | Get JSON values quickly - JSON parser for Go | 12 days ago |
gojson (opens new window) | 2616 | Automatically generate Go (golang) struct definitions from example JSON | 2 years ago |
fastjson (opens new window) | 1957 | Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection | 6 months ago |
ojg (opens new window) | 628 | Optimized JSON for Go | 8 hours ago |
jsondiff (opens new window) | 262 | Compute the diff between two JSON documents as a series of RFC6902 (JSON Patch) operations | a month ago |
kazaam (opens new window) | 259 | Arbitrary transformations of JSON in Golang | a year ago |
gojq (opens new window) | 187 | JSON query in Golang | a month ago |
ajson (opens new window) | 181 | Abstract JSON for Golang with JSONPath support | 14 days ago |
jettison (opens new window) | 154 | Highly configurable, fast JSON encoder for Go | 11 days ago |
gjo (opens new window) | 119 | Small utility to create JSON objects | 2 years ago |
json2go (opens new window) | 119 | Create go type representation from json | 2 years ago |
jsongo (opens new window) | 109 | Fluent API to make it easier to create Json objects. | 2 years ago |
jaydiff (opens new window) | 99 | A JSON diff utility | 3 years ago |
ujson (opens new window) | 68 | µjson - A fast and minimal JSON parser and transformer that works on unstructured JSON | 2 years ago |
jsonf (opens new window) | 64 | Console JSON formatter with query feature | 3 years ago |
go-respond (opens new window) | 51 | A Go package for handling common HTTP JSON responses. | 2 years ago |
mp (opens new window) | 46 | Simple Email Parser | 7 years ago |
vjson (opens new window) | 34 | vjson is a golang package that helps to validate JSON objects | 10 months ago |
jsoncolor (opens new window) | 33 | Colorized JSON output for Go | a year ago |
ask (opens new window) | 25 | A Go package that provides a simple way of accessing nested properties in maps and slices. | a year ago |
dynjson (opens new window) | 15 | Client-customizable JSON formats for dynamic APIs | 4 months ago |
mapslice-json (opens new window) | 15 | Go MapSlice for ordered marshal/ unmarshal of maps in JSON | 5 months ago |
go-jsonerror (opens new window) | 13 | Small package which wraps error responses to follow jsonapi.org | 4 years ago |
jsonapi-errors (opens new window) | 13 | Go bindings based on the JSON API errors reference | 7 years ago |
jsonhal (opens new window) | 13 | A simple Go package to make custom structs marshal into HAL compatible JSON responses. | 3 years ago |
epoch (opens new window) | 12 | Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from built-in time.Time type in JSON | a year ago |
jzon (opens new window) | 11 | A golang json library inspired by jsoniter | 7 days ago |
ej (opens new window) | 9 | Write and read JSON from different sources in one line | 3 years ago |
jsonic (opens new window) | 9 | All you need with JSON | 3 years ago |
omg.jsonparser (opens new window) | 4 | The simple JSON parser with validation by condition | 2 years ago |
# Logging
- Libraries for generating and working with log files.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
kit (opens new window) | 25278 | A standard library for microservices. | 2 months ago |
logrus (opens new window) | 23058 | Structured, pluggable logging for Go. | 18 days ago |
logrus (opens new window) | 23058 | Structured, pluggable logging for Go. | 18 days ago |
logrus (opens new window) | 23058 | Structured, pluggable logging for Go. | 18 days ago |
zap (opens new window) | 19251 | Blazing fast, structured, leveled logging in Go. | 5 days ago |
debug (opens new window) | 10782 | A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers | 19 days ago |
zerolog (opens new window) | 8658 | Zero Allocation JSON Logger | 6 days ago |
go-spew (opens new window) | 5670 | Implements a deep pretty printer for Go data structures to aid in debugging | a year ago |
lumberjack (opens new window) | 4181 | lumberjack is a log rolling package for Go | 3 months ago |
glog (opens new window) | 3403 | Leveled execution logs for Go | 4 months ago |
tail (opens new window) | 2578 | Go package for reading from continously updated files (tail -f) | 9 months ago |
seelog (opens new window) | 1637 | Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting. | 4 years ago |
log (opens new window) | 1325 | Structured logging package for Go. | 4 months ago |
log15 (opens new window) | 1092 | Structured, composable logging for Go | 6 months ago |
log (opens new window) | 501 | High performance structured logging | 2 months ago |
onelog (opens new window) | 414 | Dead simple, super fast, zero allocation logger for Golang | 4 years ago |
logutils (opens new window) | 355 | Utilities for slightly better logging in Go (Golang). | 6 months ago |
logxi (opens new window) | 351 | A 12-factor app logger built for performance and happy development | 3 years ago |
sqldb-logger (opens new window) | 313 | A logger for Go SQL database driver without modifying existing *sql.DB stdlib usage. | 7 months ago |
httpretty (opens new window) | 302 | Package httpretty prints the HTTP requests you make with Go pretty on your terminal. | 2 months ago |
log (opens new window) | 289 | 📗 Simple, configurable and scalable Structured Logging for Go. | a month ago |
go-logger (opens new window) | 286 | Simple logger for Go programs. Allows custom formats for messages. | 4 years ago |
rollingwriter (opens new window) | 281 | Rolling writer is an IO util for auto rolling write in go. | 6 months ago |
logur (opens new window) | 197 | Logur is an opinionated collection of logging best practices | 3 years ago |
glg (opens new window) | 188 | Simple and blazing fast lockfree logging library for golang | 3 months ago |
logger (opens new window) | 157 | Minimalistic logging library for Go. | 2 years ago |
xlog (opens new window) | 137 | xlog is a logger for net/context aware HTTP applications | 2 years ago |
ozzo-log (opens new window) | 122 | A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets. | 3 years ago |
logvoyage (opens new window) | 94 | LogVoyage - logging SaaS written in GoLang | 6 years ago |
go-cronowriter (opens new window) | 56 | Time based rotating file writer | 2 years ago |
log (opens new window) | 47 | Logging packages for Go | 8 years ago |
gone (opens new window) | 46 | Golang packages for writing small daemons and servers. | 2 years ago |
noodlog (opens new window) | 44 | 🍜 Parametrized JSON logging library in Golang which lets you obfuscate sensitive data and marshal any kind of content. | 4 months ago |
go-log (opens new window) | 42 | A logger, for Go | 5 years ago |
gologger (opens new window) | 41 | The Simplest and worst logging library ever written | 6 years ago |
logex (opens new window) | 41 | An golang log lib, supports tracking and level, wrap by standard log lib | a year ago |
journald (opens new window) | 37 | Go implementation of systemd Journal's native API for logging | 2 years ago |
go-log (opens new window) | 33 | a golang log lib supports level and multi handlers | 4 years ago |
mlog (opens new window) | 33 | A simple logging module for go, with a rotating file feature and console logging. | 5 years ago |
distillog (opens new window) | 32 | Logging, distilled | 5 years ago |
logrusly (opens new window) | 28 | Loggly Hooks for GO Logrus logger | 2 years ago |
log (opens new window) | 26 | Structured log interface | 6 years ago |
zkits-logger (opens new window) | 24 | A powerful zero-dependency json logger. | 3 months ago |
gomol (opens new window) | 19 | Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs | 4 years ago |
logmatic (opens new window) | 16 | Colorized logger for Golang with dynamic log level configuration | 3 years ago |
glo (opens new window) | 15 | Logging library for Golang | 5 years ago |
go-log (opens new window) | 14 | Simple and configurable Logging in Go, with level, formatters and writers | 5 years ago |
logrusiowriter (opens new window) | 14 | io.Writer implementation using logrus logger | 3 years ago |
logdump (opens new window) | 11 | Package for multi-level logging | 5 years ago |
logo (opens new window) | 11 | Golang logger to different configurable writers. | 3 years ago |
go-log (opens new window) | 10 | A logging library with strack traces, object dumping and optional timestamps | 2 months ago |
kemba (opens new window) | 10 | A tiny debug logging tool. Ideal for CLI tools and command applications. Inspired by https://github.com/visionmedia/debug | 19 days ago |
log (opens new window) | 10 | 📝 Logging with multiple output targets. | 4 years ago |
xlog (opens new window) | 8 | plugin architecture and flexible log system for golang | 5 years ago |
yell (opens new window) | 1 | 📒 Yet another minimalist logging library | a year ago |
# Machine Learning
- Libraries for Machine Learning.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
golearn (opens new window) | 8982 | Machine Learning for Go | 5 months ago |
gorse (opens new window) | 7517 | Gorse open source recommender system engine | 18 hours ago |
gorgonia (opens new window) | 5083 | Gorgonia is a library that helps facilitate machine learning in Go. | 2 months ago |
m2cgen (opens new window) | 2590 | Transform ML models into a native code (Java, C, Python, Go, JavaScript, Visual Basic, C#, R, PowerShell, PHP, Dart, Haskell, Ruby, F#, Rust) with zero dependencies | 5 months ago |
tfgo (opens new window) | 2284 | Tensorflow + Go, the gopher way | 24 days ago |
gosseract (opens new window) | 2181 | Go package for OCR (Optical Character Recognition), by using Tesseract C++ library | a month ago |
goml (opens new window) | 1488 | On-line Machine Learning in Go (and so much more) | a year ago |
eaopt (opens new window) | 846 | 🍀 Evolutionary optimization library for Go (genetic algorithm, partical swarm optimization, differential evolution) | 5 months ago |
bayesian (opens new window) | 769 | Naive Bayesian Classification for Golang. | 4 months ago |
CloudForest (opens new window) | 728 | Ensembles of decision trees in go/golang. | 2 years ago |
ocrserver (opens new window) | 587 | A simple OCR API server, seriously easy to be deployed by Docker, on Heroku as well | 2 years ago |
gobrain (opens new window) | 544 | Neural Networks written in go | 3 years ago |
onnx-go (opens new window) | 522 | onnx-go gives the ability to import a pre-trained neural network within Go without being linked to a framework or library. | 3 months ago |
go-deep (opens new window) | 464 | Artificial Neural Network | 3 months ago |
regommend (opens new window) | 302 | Recommendation engine for Go | 4 years ago |
goptuna (opens new window) | 238 | A hyperparameter optimization framework, inspired by Optuna. | 9 days ago |
goga (opens new window) | 197 | Golang Genetic Algorithm | a year ago |
go-galib (opens new window) | 195 | Genetic Algorithms library written in Go / golang | 8 years ago |
goRecommend (opens new window) | 194 | Collaborative Filtering (CF) Algorithms in Go! | 9 years ago |
shield (opens new window) | 154 | Bayesian text classifier with flexible tokenizers and storage backends for Go | 3 years ago |
go-fann (opens new window) | 114 | Go bindings for FANN, library for artificial neural networks | 9 years ago |
go-featureprocessing (opens new window) | 100 | 🔥 Fast, simple sklearn-like feature processing for Go | 2 months ago |
goscore (opens new window) | 89 | Go Scoring API for PMML | 4 years ago |
gonet (opens new window) | 79 | Neural Network for Go. | 3 years ago |
fonet (opens new window) | 77 | fonet is a deep neural network package for Go. | 2 years ago |
libsvm (opens new window) | 73 | libsvm go version | 7 years ago |
neat (opens new window) | 67 | NEAT (NeuroEvolution of Augmenting Topologies) implemented in Go | 5 years ago |
neural-go (opens new window) | 65 | A multilayer perceptron network implemented in Go, with training via backpropagation. | 3 years ago |
go-pr (opens new window) | 62 | Pattern recognition package in Go lang. | 10 years ago |
gomind (opens new window) | 60 | A simplistic Neural Network Library in Go | a year ago |
Varis (opens new window) | 52 | Golang Neural Network | 5 years ago |
golinear (opens new window) | 45 | liblinear bindings for Go | 5 years ago |
go-cluster (opens new window) | 39 | k-modes and k-prototypes clustering algorithms implementation in Go | 8 months ago |
godist (opens new window) | 35 | Probability distributions and associated methods in Go | 8 years ago |
randomForest (opens new window) | 33 | Random Forest implementation in golang | a year ago |
ddt (opens new window) | 29 | Golang Dynamic Decision Tree | 2 years ago |
evoli (opens new window) | 26 | Genetic Algorithm and Particle Swarm Optimization | 2 years ago |
probab (opens new window) | 18 | Automatically exported from code.google.com/p/probab | 8 years ago |
# Messaging
- Libraries that implement messaging systems.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
sarama (opens new window) | 10204 | Sarama is a Go library for Apache Kafka. | 41 minutes ago |
centrifugo (opens new window) | 7267 | Scalable real-time messaging server in a language-agnostic way. Set up once and forever. | 3 hours ago |
gorush (opens new window) | 7170 | A push notification server written in Go (Golang). | a month ago |
machinery (opens new window) | 6942 | Machinery is an asynchronous task queue/job queue based on distributed message passing. | 21 days ago |
asynq (opens new window) | 6530 | Simple, reliable, and efficient distributed task queue in Go | 5 hours ago |
benthos (opens new window) | 6457 | Fancy stream processing made operationally mundane | 5 hours ago |
go-socket.io (opens new window) | 5257 | socket.io library for golang, a realtime application framework. | 6 days ago |
nats.go (opens new window) | 4671 | Golang client for NATS, the cloud native messaging system. | 4 days ago |
confluent-kafka-go (opens new window) | 4062 | Confluent's Apache Kafka Golang client | 4 hours ago |
mercure (opens new window) | 3445 | An open, easy, fast, reliable and battery-efficient solution for real-time communications | 11 hours ago |
melody (opens new window) | 3230 | 🎶 Minimalist websocket framework for Go | a month ago |
apns2 (opens new window) | 2841 | ⚡ 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. | 13 days ago |
go-nsq (opens new window) | 2450 | The official Go package for NSQ | 11 days ago |
gopush-cluster (opens new window) | 2077 | Golang push server cluster | 6 years ago |
uniqush-push (opens new window) | 1504 | Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices. | 3 years ago |
EventBus (opens new window) | 1476 | [Go] Lightweight eventbus with async compatibility for Go | a year ago |
Beaver (opens new window) | 1455 | 💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. | 2 months ago |
chanify (opens new window) | 1107 | Chanify is a safe and simple notification tools. This repository is command line tools for Chanify. | 2 months ago |
zmq4 (opens new window) | 1074 | A Go interface to ZeroMQ version 4 | 2 months ago |
amqp091-go (opens new window) | 945 | An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: streadway/amqp | 10 days ago |
gollum (opens new window) | 930 | An n:m message multiplexer written in Go | 6 months ago |
dbus (opens new window) | 873 | Native Go bindings for D-Bus | 2 months ago |
golongpoll (opens new window) | 636 | golang long polling library. Makes web pub-sub easy via HTTP long-poll servers and clients 😃 ☕️ 💻 | a year ago |
mangos (opens new window) | 602 | mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols" | 3 months ago |
emitter (opens new window) | 471 | Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins | 4 months ago |
glue (opens new window) | 409 | Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io) | 3 years ago |
pubsub (opens new window) | 391 | A simple pubsub package for go. | a year ago |
bus (opens new window) | 306 | 🔊Minimalist message bus implementation for internal communication with zero-allocation magic on Emit | 3 months ago |
message-bus (opens new window) | 252 | Go simple async message bus | 3 years ago |
rabtap (opens new window) | 242 | RabbitMQ wire tap and swiss army knife | 5 months ago |
guble (opens new window) | 155 | websocket based messaging server written in golang | 6 years ago |
zmq3 (opens new window) | 133 | A Go interface to ZeroMQ version 3 | 2 years ago |
hub (opens new window) | 132 | 📨 A fast Message/Event Hub using publish/subscribe pattern with support for topics like* rabbitMQ exchanges for Go applications | 3 years ago |
oplog (opens new window) | 114 | A generic oplog/replication system for microservices | 8 years ago |
redisqueue (opens new window) | 114 | redisqueue provides a producer and consumer of a queue that uses Redis streams | 5 days ago |
go-gcm (opens new window) | 103 | GCM library for Go. | 4 years ago |
rabbus (opens new window) | 97 | A tiny wrapper over amqp exchanges and queues 🚌 ✨ | 4 years ago |
go-mq (opens new window) | 87 | Declare AMQP entities like queues, producers, and consumers in a declarative way. Can be used to work with RabbitMQ. | 3 months ago |
drone-line (opens new window) | 79 | Sending line notifications using a binary, docker or Drone CI. | 5 months ago |
nsq-event-bus (opens new window) | 77 | A tiny wrapper around NSQ topic and channel 🚀 | 5 years ago |
go-notify (opens new window) | 67 | Package notify provides an implementation of the Gnome DBus Notifications Specification. | 3 years ago |
commander (opens new window) | 65 | Build event-driven and event streaming applications with ease | 2 years ago |
RapidMQ (opens new window) | 65 | RapidMQ is a pure, extremely productive, lightweight and reliable library for managing of the local messages queue | 6 years ago |
go-res (opens new window) | 63 | RES Service protocol library for Go | 2 years ago |
event (opens new window) | 54 | The implementation of the pattern observer | 5 years ago |
hare (opens new window) | 52 | 🐇 CLI tool for websockets and Go package | a year ago |
ami (opens new window) | 26 | Go client to reliable queues based on Redis Cluster Streams | 3 years ago |
go-vitotrol (opens new window) | 22 | golang client library to Viessmann Vitotrol web service | a year ago |
gosd (opens new window) | 22 | A library for scheduling when to dispatch a message to a channel | a year ago |
rmqconn (opens new window) | 20 | RabbitMQ Reconnection client | 4 years ago |
zmq2 (opens new window) | 19 | A Go interface to ZeroMQ version 2 | 2 years ago |
jazz (opens new window) | 18 | Abstraction layer for simple rabbitMQ connection, messaging and administration | 4 years ago |
gaurun-client (opens new window) | 11 | Gaurun Client written in Go | 2 years ago |
# Microsoft Office
- Office
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
unioffice (opens new window) | 3915 | Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents | a day ago |
# Microsoft Excel
- Libraries for working with Microsoft Excel.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
excelize (opens new window) | 15633 | Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets | 3 days ago |
xlsx (opens new window) | 5515 | (No longer maintained!) Go (golang) library for reading and writing XLSX files. | 3 hours ago |
go-excel (opens new window) | 175 | A simple and light excel file reader to read a standard excel as a table faster , 一个轻量级的Excel数据读取库,用一种更关系数据库 的方式解析Excel。 | 9 months ago |
xlsx (opens new window) | 165 | Fast and reliable way to work with Microsoft Excel™ [xlsx] files in Golang | 3 years ago |
goxlsxwriter (opens new window) | 21 | Golang bindings for libxlsxwriter for writing XLSX files | a year ago |
# Miscellaneous
# Dependency Injection
- Libraries for working with dependency injection.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
fx (opens new window) | 4215 | A dependency injection based application framework for Go. | 8 days ago |
dig (opens new window) | 3315 | A reflection based dependency injection toolkit for Go. | 4 days ago |
container (opens new window) | 478 | A lightweight yet powerful IoC dependency injection container for the Go programming language | 4 months ago |
di (opens new window) | 290 | Simple and yet powerful Dependency Injection for Go | a month ago |
di (opens new window) | 197 | 🛠 A full-featured dependency injection container for go programming language. | a month ago |
dingo (opens new window) | 164 | Go Dependency Injection Framework | 2 months ago |
alice (opens new window) | 51 | An additive dependency injection container for Golang. | 6 years ago |
wire (opens new window) | 38 | Strict Runtime Dependency Injection for Golang | 2 years ago |
linker (opens new window) | 35 | Dependency Injection and Inversion of Control package | 3 years ago |
gocontainer (opens new window) | 18 | Simple Dependency Injection Container | 3 years ago |
kinit (opens new window) | 8 | GO Dependency Injection | 2 years ago |
nject (opens new window) | 3 | Go dependency injection: nject & npoint | 2 years ago |
# Project Layout
- Unofficial set of patterns for structuring projects.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
project-layout (opens new window) | 41030 | Standard Go Project Layout | 13 days ago |
service (opens new window) | 2815 | Starter code for writing web services in Go using Kubernetes. | 4 days ago |
modern-go-application (opens new window) | 1631 | Modern Go Application example | a month ago |
cookiecutter-golang (opens new window) | 622 | A Go project template | a year ago |
seed (opens new window) | 391 | Go application GitHub repository template. | a month ago |
go-starter (opens new window) | 362 | An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps. | 2 months ago |
go-todo-backend (opens new window) | 240 | Go Todo Backend example using modular project layout for product microservice. | 2 months ago |
scaffold (opens new window) | 142 | Generate scaffold project layout for Go. | 5 years ago |
go-sample (opens new window) | 125 | Go Project Sample Layout | 5 years ago |
gobase (opens new window) | 48 | This is a simple skeleton for golang applications | 2 months ago |
go-project-layout (opens new window) | 22 | My understanding of how to structure a golang project. | 2 years ago |
inizio (opens new window) | 16 | Golang project standard layout generator | 5 months ago |
# Strings
- Libraries for working with strings.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
xstrings (opens new window) | 1240 | Implements string functions widely used in other languages but absent in Go. | 8 months ago |
sttr (opens new window) | 735 | cross-platform, cli app to perform various operations on string | 4 months ago |
strutil (opens new window) | 196 | String utilities for Go | a year ago |
stringy (opens new window) | 188 | Convert string to camel case, snake case, kebab case / slugify, custom delimiter, pad string, tease string and many other functionalities with help of by Stringy package. | 7 months ago |
bexp (opens new window) | 0 | Go implementation of Brace Expansion mechanism to generate arbitrary strings. | 5 months ago |
# Uncategorized
- These libraries were placed here because none of the other categories seemed to fit.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gopsutil (opens new window) | 9316 | psutil for golang | 16 hours ago |
archiver (opens new window) | 4032 | Easily create & extract archives, and compress & decompress files of various formats | 3 months ago |
gatus (opens new window) | 3942 | ⛑ Automated developer-oriented status page | 6 hours ago |
oapi-codegen (opens new window) | 3823 | Generate Go client and server boilerplate from OpenAPI 3 specifications | 7 hours ago |
gofakeit (opens new window) | 3227 | Random fake data generator written in go | 5 days ago |
go-resiliency (opens new window) | 1838 | Resiliency patterns for golang | 6 months ago |
base64Captcha (opens new window) | 1826 | captcha of base64 image string | 3 months ago |
gosms (opens new window) | 1429 | 📪 Your own local SMS gateway in Go | 3 years ago |
go-commons-pool (opens new window) | 1170 | a generic object pool for golang | 2 months ago |
llvm (opens new window) | 1078 | Library for interacting with LLVM IR in pure Go. | 6 months ago |
shortid (opens new window) | 879 | Super short, fully unique, non-sequential and URL friendly Ids | a year ago |
health (opens new window) | 686 | A simple and flexible health check library for Go. | 20 days ago |
shoutrrr (opens new window) | 680 | Notification library for gophers and their furry friends. | 6 days ago |
stateless (opens new window) | 655 | Go library for creating finite state machines | 15 days ago |
health (opens new window) | 444 | An easy to use, extensible health check library for Go applications. | a year ago |
banner (opens new window) | 437 | An easy way to add useful startup banners into your Go applications | 3 years ago |
gountries (opens new window) | 392 | 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. | 3 months ago |
go-conv (opens new window) | 386 | Fast conversions across various Go types with a simple API. | 2 years ago |
lk (opens new window) | 307 | Simple licensing library for golang. | 4 months ago |
ffmt (opens new window) | 295 | Golang beautify data display for Humans | 2 years ago |
healthcheck (opens new window) | 256 | An simple, easily extensible and concurrent health-check library for Go services | a year ago |
antch (opens new window) | 252 | Antch, a fast, powerful and extensible web crawling & scraping framework for Go | 3 years ago |
go-unarr (opens new window) | 246 | Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives) | 2 months ago |
battery (opens new window) | 225 | cross-platform, normalized battery information library | 2 months ago |
bitio (opens new window) | 221 | Optimized bit-level Reader and Writer for Go. | 4 months ago |
stats (opens new window) | 166 | 📈 Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... | 7 years ago |
turtle (opens new window) | 152 | Emojis for Go 😄🐢🚀 | 2 years ago |
captcha (opens new window) | 135 | 😎Package captcha provides an easy to use, unopinionated API for captcha generation | 13 days ago |
gotoprom (opens new window) | 106 | Type-safe Prometheus metrics builder library for golang | 6 months ago |
indigo (opens new window) | 104 | A distributed unique ID generator of using Sonyflake and encoded by Base58 | 3 months ago |
gommit (opens new window) | 103 | Enforce git message commit consistency | a day ago |
morse (opens new window) | 78 | Morse Code Library in Go | a year ago |
faker (opens new window) | 76 | Random fake data and struct generator for Go. | 10 months ago |
persian (opens new window) | 75 | Some utilities for Persian language in Go (Golang) | 2 years ago |
pdfgen (opens new window) | 62 | HTTP service to generate PDF from Json requests | 5 years ago |
xkg (opens new window) | 56 | User level X Keyboard Grabber | 9 years ago |
datacounter (opens new window) | 45 | Golang counters for readers/writers | 4 months ago |
browscap_go (opens new window) | 44 | GoLang Library for Browser Capabilities Project | 2 months ago |
url-shortener (opens new window) | 42 | A golang URL Shortener | 6 months ago |
sandid (opens new window) | 40 | Every grain of sand on Earth has its own ID. | a year ago |
autoflags (opens new window) | 39 | Populate go command line app flags from config struct | a year ago |
gosh (opens new window) | 34 | Provide Go Statistics Handler, Struct, Measure Method | 3 months ago |
xdg (opens new window) | 33 | FreeDesktop.org (xdg) Specs implemented in Go | 5 months ago |
metrics (opens new window) | 26 | atomic measures + Prometheus exposition library | 5 months ago |
shellwords (opens new window) | 21 | A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. | 4 months ago |
numa (opens new window) | 17 | NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. | 5 months ago |
anagent (opens new window) | 14 | Minimalistic, pluggable Golang evloop/timer handler with dependency-injection | 5 years ago |
avgRating (opens new window) | 14 | Calculate average score and rating based on Wilson Score Equation | 6 years ago |
hostutils (opens new window) | 12 | A golang library for packing and unpacking hosts list | 4 months ago |
go-commandbus (opens new window) | 10 | Simple command bus for GO | 2 years ago |
generators (opens new window) | 5 | #golang generator | 7 years ago |
basexx (opens new window) | 4 | Convert digit strings between arbitrary bases. | a month ago |
# Natural Language Processing
- Libraries for working with human languages.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
jieba (opens new window) | 31042 | 结巴中文分词 | a year ago |
vaderSentiment (opens new window) | 4022 | VADER Sentiment Analysis. VADER (Valence Aware Dictionary and sEntiment Reasoner) is a lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media, and works well on texts from other domains. | 9 months ago |
prose (opens new window) | 3008 | 📖 A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction. | 3 months ago |
go-i18n (opens new window) | 2480 | Translate your Go program into multiple languages. | 2 months ago |
gse (opens new window) | 2285 | Go efficient multilingual NLP and text segmentation; support English, Chinese, Japanese and others. | 5 months ago |
gojieba (opens new window) | 2192 | "结巴"中文分词的Golang版本 | 3 months ago |
spago (opens new window) | 1549 | Self-contained Machine Learning and Natural Language Processing library in Go | 2 months ago |
go-pinyin (opens new window) | 1441 | 汉字转拼音 | a month ago |
when (opens new window) | 1285 | A natural language date/time parser with pluggable rules | 2 months ago |
kagome (opens new window) | 743 | Self-contained Japanese Morphological Analyzer written in pure Go | 3 months ago |
whatlanggo (opens new window) | 593 | Natural language detection library for Go | 4 months ago |
nlp (opens new window) | 416 | Selected Machine Learning algorithms for natural language processing and semantic analysis in Golang | 2 years ago |
nlp (opens new window) | 383 | [UNMANTEINED] Extract values from strings and fill your structs with nlp. | 6 years ago |
sentences (opens new window) | 374 | A multilingual command line sentence tokenizer in Golang | 6 months ago |
getlang (opens new window) | 155 | Natural language detection package in pure Go | 3 years ago |
go-unidecode (opens new window) | 109 | ASCII transliterations of Unicode text. | 3 months ago |
RAKE.Go (opens new window) | 100 | A Go port of the Rapid Automatic Keyword Extraction algorithm (RAKE) | 3 years ago |
go-nlp (opens new window) | 95 | Utilities for working with discrete probability distributions and other tools useful for doing NLP work | 12 years ago |
gounidecode (opens new window) | 79 | Unicode transliterator for #golang | 8 years ago |
segment (opens new window) | 78 | A Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29 | 8 months ago |
go-stem (opens new window) | 75 | Word Stemming in Go | 5 years ago |
textcat (opens new window) | 70 | A Go package for n-gram based text categorization, with support for utf-8 and raw text | 2 years ago |
address (opens new window) | 67 | Address handling for Go. | a month ago |
MMSEGO (opens new window) | 62 | Chinese word splitting algorithm MMSEG in GO | 11 years ago |
go-localize (opens new window) | 54 | i18n (Internationalization and localization) engine written in Go, used for translating locale strings. | 2 years ago |
go2vec (opens new window) | 52 | Read and use word2vec vectors in Go | 5 years ago |
stemmer (opens new window) | 51 | Stemmer packages for Go programming language. Includes English, German and Dutch stemmers. | 7 years ago |
porter2 (opens new window) | 46 | High Performance Porter2 Stemmer | 3 years ago |
petrovich (opens new window) | 44 | Golang port of Petrovich - an inflector for Russian anthroponyms. | 2 years ago |
iuliia-go (opens new window) | 38 | Transliterate Cyrillic → Latin in every possible way | 2 years ago |
snowball (opens new window) | 36 | Cgo binding for Snowball C library | 6 years ago |
govader (opens new window) | 35 | vader sentiment analysis in go | 6 months ago |
transliterator (opens new window) | 35 | Golang text Transliterator (i.e München -> Muenchen) | a year ago |
mystem (opens new window) | 30 | CGo bindings to Yandex.Mystem | 7 years ago |
paicehusk (opens new window) | 29 | Golang implementation of the Paice/Husk Stemming Algorithm | 10 years ago |
detectlanguage-go (opens new window) | 22 | Detect Language API Go Client | a year ago |
icu (opens new window) | 21 | Cgo binding for icu4c library | 6 years ago |
golibstemmer (opens new window) | 20 | Go bindings for the snowball libstemmer library including porter 2 | 9 years ago |
gotokenizer (opens new window) | 18 | A tokenizer based on the dictionary and Bigram language models for Go. (Now only support chinese segmentation) | 4 years ago |
t (opens new window) | 15 | t: translation util for go, using GNU gettext | a month ago |
libtextcat (opens new window) | 13 | Cgo binding for libtextcat C library | 11 years ago |
shamoji (opens new window) | 13 | The shamoji (杓文字) is a word filtering package | 8 months ago |
porter (opens new window) | 12 | porter stemmer | 10 years ago |
gosentiwordnet (opens new window) | 10 | 💬 Sentiment analyzer library using SentiWordnet in Go | 2 years ago |
# Networking
- Libraries for working with various layers of the network.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
fasthttp (opens new window) | 19942 | Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http | 5 hours ago |
kcptun (opens new window) | 13424 | A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC. | 12 days ago |
webrtc (opens new window) | 11513 | Pure Go implementation of the WebRTC API | a day ago |
quic-go (opens new window) | 8503 | A QUIC implementation in pure go | 10 hours ago |
gnet (opens new window) | 7918 | 🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。 | 17 days ago |
dns (opens new window) | 7130 | DNS library in Go | 17 days ago |
gopacket (opens new window) | 5749 | Provides packet processing capabilities for Go | 16 days ago |
httplab (opens new window) | 3913 | The interactive web server | 3 months ago |
kcp-go (opens new window) | 3705 | A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC | 3 months ago |
gobgp (opens new window) | 3275 | BGP implemented in the Go Programming Language | 15 hours ago |
ssh (opens new window) | 3106 | Easy SSH servers in Golang | 8 days ago |
fortio (opens new window) | 2982 | 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. | 9 hours ago |
water (opens new window) | 1714 | A simple TUN/TAP library written in native Go. | 4 months ago |
nbio (opens new window) | 1693 | Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. | 3 days ago |
gev (opens new window) | 1657 | 🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers. | 5 months ago |
go-getter (opens new window) | 1510 | Package for downloading things from a string URL using a variety of protocols. | 13 days ago |
sftp (opens new window) | 1375 | SFTP support for the go.crypto/ssh package | 18 days ago |
nff-go (opens new window) | 1311 | NFF-Go -Network Function Framework for GO (former YANFF) | 9 months ago |
grab (opens new window) | 1280 | A download manager package for Go | a month ago |
ftp (opens new window) | 1148 | FTP client package for Go | a month ago |
mdns (opens new window) | 1005 | Simple mDNS client/server library in Golang | 7 days ago |
gosnmp (opens new window) | 977 | An SNMP library written in Go | a month ago |
vssh (opens new window) | 910 | Go Library to Execute Commands Over SSH at Scale | 3 months ago |
gmqtt (opens new window) | 892 | Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang | 2 months ago |
cidranger (opens new window) | 849 | Fast IP to CIDR lookup in Golang | 2 months ago |
easytcp (opens new window) | 704 | ✨ 🚀 EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. | 5 months ago |
lhttp (opens new window) | 691 | go websocket, a better way to buid your IM server | 5 years ago |
peerdiscovery (opens new window) | 598 | Pure-Go library for cross-platform local peer discovery using UDP multicast 👩 🔁 👩 | 24 days ago |
go-stun (opens new window) | 592 | A go implementation of the STUN client (RFC 3489 and RFC 5389) | 4 months ago |
gaio (opens new window) | 508 | High performance async-io(proactor) networking for Golang。golangのための高性能非同期io(proactor)ネットワーキング | a year ago |
gotcp (opens new window) | 508 | A Go package for quickly building tcp servers | 5 hours ago |
stun (opens new window) | 487 | Fast RFC 5389 STUN implementation in go | 2 years ago |
gopcap (opens new window) | 473 | A simple wrapper around libpcap for the Go programming language | 2 years ago |
tcp_server (opens new window) | 424 | golang tcp server | 2 years ago |
raw (opens new window) | 420 | Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed. | a year ago |
winrm (opens new window) | 406 | Command-line tool and library for Windows remote command execution in Go | 5 months ago |
ftpserverlib (opens new window) | 371 | golang ftp server library | 4 days ago |
arp (opens new window) | 328 | Package arp implements the ARP protocol, as described in RFC 826. MIT Licensed. | 8 months ago |
ethernet (opens new window) | 269 | Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed. | a year ago |
buffstreams (opens new window) | 253 | A library to simplify writing applications using TCP sockets to stream protobuff messages | 3 years ago |
gnxi (opens new window) | 242 | gNXI Tools - gRPC Network Management/Operations Interface Tools | a day ago |
jazigo (opens new window) | 195 | Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet. | 4 days ago |
utp (opens new window) | 170 | Use anacrolix/go-libutp instead | 3 months ago |
canopus (opens new window) | 152 | CoAP Client/Server implementing RFC 7252 for the Go Language | 5 years ago |
xtcp (opens new window) | 144 | A TCP Server Framework with graceful shutdown, custom protocol. | 3 years ago |
sslb (opens new window) | 143 | Golang Super Simple Load Balance | 7 months ago |
iplib (opens new window) | 116 | A library for working with IP addresses and networks in Go | 16 days ago |
ether (opens new window) | 79 | A Go package for sending and receiving ethernet frames. Currently supporting Linux, Freebsd, and OS X. | 7 years ago |
dhcp6 (opens new window) | 76 | Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. MIT Licensed. | 5 months ago |
packet (opens new window) | 74 | 📦 Send network packets over a TCP or UDP connection. | 4 years ago |
go-powerdns (opens new window) | 71 | Go PowerDNS 4.x API Client | a month ago |
portproxy (opens new window) | 53 | TCP proxy, highjacks HTTP to allow CORS | 9 years ago |
linkio (opens new window) | 52 | Simulate network link speed | 6 years ago |
panoptes-stream (opens new window) | 39 | A cloud native distributed streaming network telemetry. | 15 days ago |
golibwireshark (opens new window) | 29 | 6 years ago | |
graval (opens new window) | 28 | An experimental go FTP server framework | 3 years ago |
publicip (opens new window) | 26 | Go pkg for returning your public facing IP address. | 7 years ago |
httpproxy (opens new window) | 21 | HTTP proxy handler and dialer | 4 months ago |
goshark (opens new window) | 16 | 6 years ago | |
llb (opens new window) | 14 | 7 years ago | |
tspool (opens new window) | 14 | tcp server pool | 5 years ago |
# HTTP Clients
- Libraries for making HTTP requests.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
resty (opens new window) | 8145 | Simple HTTP and REST client library for Go | 11 days ago |
heimdall (opens new window) | 2466 | An enhanced HTTP client for Go | 5 months ago |
grequests (opens new window) | 1981 | A Go "clone" of the great and famous Requests library | 5 months ago |
sling (opens new window) | 1592 | A Go HTTP client library for creating and sending API requests | 16 hours ago |
requests (opens new window) | 1098 | HTTP requests for Gophers | 3 days ago |
gentleman (opens new window) | 1012 | Plugin-driven, extensible HTTP client toolkit for Go | 2 years ago |
pester (opens new window) | 621 | Go (golang) http calls with retries and backoff | a year ago |
request (opens new window) | 245 | go request, go http client | a month ago |
go-http-client (opens new window) | 61 | An enhanced http client for Golang | 8 months ago |
rq (opens new window) | 49 | A nicer interface for golang stdlib HTTP client | 4 years ago |
httpretry (opens new window) | 39 | Enriches the standard go http client with retry functionality. | 6 months ago |
go-req (opens new window) | 20 | Declarative golang HTTP client | a year ago |
httpc (opens new window) | 5 | A customizable and simple HTTP client library. Only depend on the stdlib HTTP client. | 2 years ago |
# OpenGL
- Libraries for using OpenGL in Go.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
glfw (opens new window) | 1420 | Go bindings for GLFW 3 | 5 months ago |
gl (opens new window) | 983 | Go bindings for OpenGL (generated via glow) | 2 years ago |
mathgl (opens new window) | 500 | A pure Go 3D math library. | 4 months ago |
gl (opens new window) | 165 | Go cross-platform OpenGL bindings. | a month ago |
glfw (opens new window) | 78 | Go cross-platform glfw library for creating an OpenGL context and receiving events. | a month ago |
go-glmatrix (opens new window) | 7 | go-glmatrix is a golang version of glMatrix, which is "designed to perform vector and matrix operations stupidly fast". | 3 years ago |
# ORM
- Libraries that implement Object-Relational Mapping or datamapping techniques.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gorm (opens new window) | 33214 | The fantastic ORM library for Golang, aims to be developer friendly | a day ago |
beego (opens new window) | 30049 | beego is an open-source, high-performance web framework for the Go programming language. | 19 hours ago |
ent (opens new window) | 13879 | An entity framework for Go | 32 minutes ago |
sqlboiler (opens new window) | 5937 | Generate a Go ORM tailored to your database schema. | 2 days ago |
pg (opens new window) | 5451 | Golang ORM with focus on PostgreSQL features and performance | a month ago |
gorp (opens new window) | 3676 | Go Relational Persistence - an ORM-ish library for Go | a month ago |
db (opens new window) | 3365 | Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features. | a month ago |
gormt (opens new window) | 2223 | database to golang struct | 2 months ago |
reform (opens new window) | 1419 | A better ORM for Go, based on non-empty interfaces and code generation. | 5 months ago |
pop (opens new window) | 1360 | A Tasty Treat For All Your Database Needs | 14 days ago |
go-sqlbuilder (opens new window) | 1063 | A flexible and powerful SQL string builder library plus a zero-config ORM. | 5 hours ago |
go-queryset (opens new window) | 700 | 100% type-safe ORM for Go (Golang) with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support. GORM under the hood. | 5 months ago |
rel (opens new window) | 659 | 💎 Modern ORM for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API | 3 days ago |
zoom (opens new window) | 300 | A blazing-fast datastore and querying engine for Go built on Redis. | 6 months ago |
gosql (opens new window) | 175 | golang orm and sql builder | a year ago |
grimoire (opens new window) | 159 | Database access layer for golang | 2 years ago |
go-store (opens new window) | 111 | A simple and fast Redis backed key-value store library for Go | 6 years ago |
go-firestorm (opens new window) | 46 | Simple Go ORM for Google/Firebase Cloud Firestore | 2 years ago |
marlow (opens new window) | 13 | persistence layer code generation for golang | 3 years ago |
lore (opens new window) | 12 | Light Object-Relational Environment (LORE) provides a simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go | 6 years ago |
# Package Management
# Official experimental tooling for package management
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
dep (opens new window) | 12957 | Go dependency management tool experiment (deprecated) | 3 years ago |
# Unofficial libraries for package and dependency management
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
glide (opens new window) | 8176 | Package Management for Golang | a year ago |
godep (opens new window) | 5575 | dependency tool for go | 5 years ago |
govendor (opens new window) | 4949 | Use Go Modules. | 3 years ago |
gopm (opens new window) | 2475 | Go Package Manager (gopm) is a package manager and build tool for Go. | 4 years ago |
gom (opens new window) | 1389 | Go Manager - bundle for go | 4 years ago |
gpm (opens new window) | 1198 | Barebones dependency manager for Go. | 6 years ago |
goop (opens new window) | 780 | A simple dependency manager for Go (golang), inspired by Bundler. | 8 years ago |
modgv (opens new window) | 464 | Converts 'go mod graph' output into Graphviz's DOT language | 6 months ago |
nut (opens new window) | 235 | Vendor Go dependencies | 8 years ago |
johnny-deps (opens new window) | 214 | Barebones dependency manager for Go. | 3 years ago |
mvn-golang (opens new window) | 157 | maven plugin to automate GoSDK load and build of projects | 25 days ago |
VenGO (opens new window) | 122 | Create and manage Isolated Virtual Environments for Go | 7 years ago |
gop (opens new window) | 50 | Moved to https://gitea.com/lunny/gop | 4 years ago |
# Performance
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
jaeger (opens new window) | 18052 | CNCF Jaeger, a Distributed Tracing Platform | 12 hours ago |
pixie (opens new window) | 4764 | Instant Kubernetes-Native Application Observability | 7 hours ago |
statsviz (opens new window) | 2921 | 🚀 Visualise Go program runtime metrics in real time in your browser | a month ago |
profile (opens new window) | 1889 | Simple profiling for Go | 10 months ago |
tracer (opens new window) | 79 | 🪡 Dead simple, lightweight tracing. | 2 years ago |
# Query Language
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
graphql (opens new window) | 9336 | An implementation of GraphQL for Go / Golang | 17 days ago |
gqlgen (opens new window) | 9074 | go generate based graphql server library | 5 hours ago |
graphql-go (opens new window) | 4512 | GraphQL server with a focus on ease of use | a month ago |
dasel (opens new window) | 4469 | Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. | a day ago |
gojsonq (opens new window) | 2082 | A simple Go package to Query over JSON/YAML/XML/CSV Data | 8 months ago |
rql (opens new window) | 294 | Resource Query Language for REST | 11 hours ago |
jsonql (opens new window) | 269 | JSON query expression library in Golang. | 3 years ago |
jsonslice (opens new window) | 79 | json slicer | 3 months ago |
graphql (opens new window) | 57 | graphql parser + utilities | 6 years ago |
rest-query-parser (opens new window) | 56 | Query Parser for REST | 20 days ago |
api-fu (opens new window) | 50 | A collection of Go packages for creating robust GraphQL APIs | 14 days ago |
straf (opens new window) | 34 | Convert Golang Struct To GraphQL Object On The Fly | 3 years ago |
jsonpath (opens new window) | 18 | A query library for retrieving part of JSON based on JSONPath syntax. | 5 months ago |
gws (opens new window) | 7 | A WebSocket client and server for GraphQL | 3 years ago |
# Resource Embedding
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
statik (opens new window) | 3639 | Embed files into a Go executable | 3 months ago |
packr (opens new window) | 3411 | The simple and easy way to embed static files into Go binaries. | 2 years ago |
go.rice (opens new window) | 2367 | go.rice is a Go package that makes working with resources such as html,js,css,images,templates, etc very easy. | 9 months ago |
vfsgen (opens new window) | 976 | Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it. | a month ago |
esc (opens new window) | 636 | A simple file embedder for Go | 4 years ago |
fileb0x (opens new window) | 630 | a better customizable tool to embed files in go; also update embedded files remotely without restarting the server | 5 months ago |
go-resources (opens new window) | 176 | Unfancy resources embedding for Go with out of box http.FileSystem support. | 10 months ago |
statics (opens new window) | 66 | 📁 Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks | 7 years ago |
templify (opens new window) | 30 | A tool to be used with 'go generate' to embed external template files into Go code. | 2 years ago |
rebed (opens new window) | 27 | Recreates directory and files from embedded filesystem using Go 1.16 embed.FS type. | a year ago |
debme (opens new window) | 25 | embed.FS wrapper providing additional functionality | 2 years ago |
mule (opens new window) | 12 | mule is a tool to be used with 'go generate' to embed external resources files into Go code. | 2 years ago |
# Science and Data Analysis
- Libraries for scientific computing and data analyzing.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gonum (opens new window) | 6748 | Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more | 2 days ago |
stats (opens new window) | 2794 | A well tested and comprehensive Golang statistics library package with no dependencies. | 2 months ago |
plot (opens new window) | 2492 | A repository for plotting and visualizing data | 14 days ago |
gosl (opens new window) | 1761 | Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations. | 2 months ago |
streamtools (opens new window) | 1314 | tools for working with streams of data | 8 years ago |
dataframe-go (opens new window) | 1027 | DataFrames for Go: For statistics, machine-learning, and data manipulation/exploration | a year ago |
go-dsp (opens new window) | 825 | Digital Signal Processing for Go | 2 years ago |
chart (opens new window) | 755 | Provide basic charts in go | 2 years ago |
goraph (opens new window) | 720 | Package goraph implements graph data structure and algorithms. | a year ago |
orb (opens new window) | 704 | Types and utilities for working with 2d geometry in Golang | 23 days ago |
graph (opens new window) | 650 | Graph algorithms and data structures | 3 months ago |
ewma (opens new window) | 412 | Exponentially Weighted Moving Average algorithms for Go. | 2 years ago |
calendarheatmap (opens new window) | 376 | 📅 Calendar heatmap inspired by GitHub contribution activity | 3 months ago |
TextRank (opens new window) | 183 | 😉 🌀 🍓 TextRank implementation in Golang with extendable features (summarization, phrase extraction) and multithreading (goroutine). | 2 years ago |
gohistogram (opens new window) | 172 | Streaming approximate histograms in Go | 3 years ago |
sparse (opens new window) | 146 | Sparse matrix formats for linear algebra supporting scientific and machine learning applications | 2 years ago |
go-estimate (opens new window) | 104 | State estimation and filtering algorithms in Go | 6 months ago |
pagerank (opens new window) | 77 | Weighted PageRank implementation in Go | 2 years ago |
jsonl-graph (opens new window) | 68 | 🏝 JSONL Graph Tools | 9 months ago |
geom (opens new window) | 55 | 2d geometry for golang | 6 years ago |
evaler (opens new window) | 52 | Implements a simple floating point arithmetic expression evaluator in Go (golang). | 5 years ago |
decimal (opens new window) | 37 | An arbitrary-precision decimal floating-point arithmetic package for Go | a year ago |
triangolatte (opens new window) | 35 | 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. | 2 years ago |
goent (opens new window) | 33 | GO Implementation of Entropy Measures | 4 years ago |
piecewiselinear (opens new window) | 26 | tiny linear interpolation library for go (factored out from https://github.com/sgreben/yeetgif) | 3 years ago |
godesim (opens new window) | 21 | ODE system solver made simple. For IVPs (initial value problems). | a year ago |
ode (opens new window) | 21 | An ordinary differential equation solving library in golang. | 6 years ago |
PiHex (opens new window) | 20 | PiHex Library, written in Go, generates a hexadecimal number sequence in the number Pi in the range from 0 to 10,000,000. | 9 months ago |
GoStats (opens new window) | 19 | GoStats is a go library for math statistics mostly used in ML domains, it covers most of the statistical measures functions. | 5 years ago |
assocentity (opens new window) | 12 | Package assocentity returns the mean distance from tokens to an entity and its synonyms | 2 months ago |
go-gt (opens new window) | 10 | Automatically exported from code.google.com/p/go-gt | 8 years ago |
rootfinding (opens new window) | 10 | root-finding library | 3 years ago |
bradleyterry (opens new window) | 8 | Package to do Bradley-Terry Model pairwise compairsons | 4 years ago |
# Security
- Libraries that are used to help make your application more secure.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
age (opens new window) | 13871 | A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. | 9 hours ago |
lego (opens new window) | 6367 | Let's Encrypt/ACME client and library written in Go | 3 days ago |
certmagic (opens new window) | 4580 | Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal | 17 days ago |
cameradar (opens new window) | 3447 | Cameradar hacks its way into RTSP videosurveillance cameras | a month ago |
memguard (opens new window) | 2378 | Secure software enclave for storage of sensitive information in memory. | 21 days ago |
secure (opens new window) | 2135 | HTTP middleware for Go that facilitates some quick security wins. | 8 months ago |
acmetool (opens new window) | 1995 | 🔒 acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt) | 2 months ago |
themis (opens new window) | 1729 | Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms. | a month ago |
acra (opens new window) | 1205 | Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL. | 12 minutes ago |
dongle (opens new window) | 736 | A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption | 6 months ago |
nacl (opens new window) | 535 | Pure Go implementation of the NaCL set of API's | a year ago |
go-password-validator (opens new window) | 420 | Validate the Strength of a Password in Go | a year ago |
ssh-vault (opens new window) | 385 | 🌰 encrypt/decrypt using ssh keys | 3 months ago |
optimus-go (opens new window) | 349 | ID hashing and Obfuscation using Knuth's Algorithm | 3 years ago |
firewalld-rest (opens new window) | 330 | A rest application to update firewalld rules on a linux server | 3 years ago |
badactor (opens new window) | 315 | BadActor.org An in-memory application driven jailer written in Go | 3 years ago |
go-yara (opens new window) | 311 | Go bindings for YARA | a month ago |
passlib (opens new window) | 285 | 🔑 Idiotproof golang password validation library inspired by Python's passlib | 2 years ago |
simple-scrypt (opens new window) | 189 | A convenience library for generating, comparing and inspecting password hashes using the scrypt KDF in Go 🔑 | 2 years ago |
yara (opens new window) | 132 | The pattern matching swiss knife | 3 years ago |
argon2pw (opens new window) | 89 | Argon2 password hashing package for go with constant time hash comparison | 2 years ago |
goSecretBoxPassword (opens new window) | 55 | 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. | a year ago |
go-generate-password (opens new window) | 48 | Password generator written in Go | a year ago |
certificates (opens new window) | 37 | An opinionated helper for generating tls certificates | 7 months ago |
secureio (opens new window) | 30 | An easy-to-use XChaCha20-encryption wrapper for io.ReadWriteCloser (even lossy UDP) using ECDH key exchange algorithm, ED25519 signatures and Blake3+Poly1305 checksums/message-authentication for Go (golang). Also a multiplexer. | 3 years ago |
sslmgr (opens new window) | 20 | A layer of abstraction the around acme/autocert certificate manager (Golang) | 10 months ago |
argon2-hashing (opens new window) | 19 | A light package for generating and comparing password hashing with argon2 in Go | 3 months ago |
goArgonPass (opens new window) | 16 | goArgonPass is a Argon2 Password utility package for Go using the crypto library package Argon2 designed to be compatible with Passlib for Python and Argon2 PHP. 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. | 3 years ago |
# Serialization
- Libraries and tools for binary serialization.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
age (opens new window) | 13871 | A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. | 9 hours ago |
go (opens new window) | 12480 | A high-performance 100% compatible drop-in replacement of "encoding/json" | 2 months ago |
protobuf (opens new window) | 9184 | Go support for Google's protocol buffers | 2 months ago |
mapstructure (opens new window) | 7018 | Go library for decoding generic map values into native Go structures and vice versa. | 13 days ago |
protobuf (opens new window) | 5581 | [Deprecated] Protocol Buffers for Go with Gadgets | 12 days ago |
acmetool (opens new window) | 1995 | 🔒 acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt) | 2 months ago |
go (opens new window) | 1762 | idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go] | a month ago |
acra (opens new window) | 1205 | Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL. | 13 minutes ago |
csvutil (opens new window) | 820 | csvutil provides fast and idiomatic mapping between CSV and Go (golang) values. | 4 months ago |
colfer (opens new window) | 713 | binary serialization format | 16 days ago |
cbor (opens new window) | 593 | CBOR codec (RFC 8949) with CBOR tags, Go struct tags (toarray, keyasint, omitempty), float64/32/16, big.Int, and fuzz tested billions of execs. | a day ago |
go-capnproto (opens new window) | 289 | Cap'n Proto library and parser for go. This is go-capnproto-1.0, and does not have rpc. See https://github.com/zombiezen/go-capnproto2 for 2.0 which has rpc and capabilities. | 4 years ago |
php_session_decoder (opens new window) | 159 | PHP session encoder/decoder written in Go | 5 years ago |
structomap (opens new window) | 140 | Easily and dynamically generate maps from Go static structures | 4 years ago |
binstruct (opens new window) | 75 | Golang binary decoder for mapping data into the structure | a year ago |
bambam (opens new window) | 67 | auto-generate capnproto schema from your golang source files. Depends on go-capnproto-1.0 at https://github.com/glycerine/go-capnproto | 7 years ago |
asn1 (opens new window) | 53 | Asn.1 BER and DER encoding library for golang. | 4 years ago |
bel (opens new window) | 35 | Generate TypeScript interfaces from Go structs/interfaces - useful for JSON RPC | 2 months ago |
fwencoder (opens new window) | 25 | Fixed width file parser (encoder/decoder) in GO (golang) | 3 months ago |
elastic (opens new window) | 24 | Converts go types no matter what | 2 years ago |
pletter (opens new window) | 20 | A standard way to wrap a proto message | a day ago |
argon2-hashing (opens new window) | 19 | A light package for generating and comparing password hashing with argon2 in Go | 3 months ago |
fixedwidth (opens new window) | 8 | A Go package for encode/decode fixed-width data | 4 years ago |
unitpacking (opens new window) | 6 | A library for storing unit vectors in a representation that lends itself to saving space on disk. | a month ago |
go-lctree (opens new window) | 4 | go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]"). | 3 years ago |
# Server Applications
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
age (opens new window) | 13871 | A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. | 9 hours ago |
go (opens new window) | 12480 | A high-performance 100% compatible drop-in replacement of "encoding/json" | 2 months ago |
protobuf (opens new window) | 9184 | Go support for Google's protocol buffers | 2 months ago |
mapstructure (opens new window) | 7018 | Go library for decoding generic map values into native Go structures and vice versa. | 13 days ago |
protobuf (opens new window) | 5581 | [Deprecated] Protocol Buffers for Go with Gadgets | 12 days ago |
acmetool (opens new window) | 1995 | 🔒 acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt) | 2 months ago |
go (opens new window) | 1762 | idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go] | a month ago |
acra (opens new window) | 1205 | Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL. | 13 minutes ago |
csvutil (opens new window) | 820 | csvutil provides fast and idiomatic mapping between CSV and Go (golang) values. | 4 months ago |
colfer (opens new window) | 713 | binary serialization format | 16 days ago |
cbor (opens new window) | 593 | CBOR codec (RFC 8949) with CBOR tags, Go struct tags (toarray, keyasint, omitempty), float64/32/16, big.Int, and fuzz tested billions of execs. | a day ago |
go-capnproto (opens new window) | 289 | Cap'n Proto library and parser for go. This is go-capnproto-1.0, and does not have rpc. See https://github.com/zombiezen/go-capnproto2 for 2.0 which has rpc and capabilities. | 4 years ago |
php_session_decoder (opens new window) | 159 | PHP session encoder/decoder written in Go | 5 years ago |
structomap (opens new window) | 140 | Easily and dynamically generate maps from Go static structures | 4 years ago |
binstruct (opens new window) | 75 | Golang binary decoder for mapping data into the structure | a year ago |
bambam (opens new window) | 67 | auto-generate capnproto schema from your golang source files. Depends on go-capnproto-1.0 at https://github.com/glycerine/go-capnproto | 7 years ago |
asn1 (opens new window) | 53 | Asn.1 BER and DER encoding library for golang. | 4 years ago |
bel (opens new window) | 35 | Generate TypeScript interfaces from Go structs/interfaces - useful for JSON RPC | 2 months ago |
fwencoder (opens new window) | 25 | Fixed width file parser (encoder/decoder) in GO (golang) | 3 months ago |
elastic (opens new window) | 24 | Converts go types no matter what | 2 years ago |
pletter (opens new window) | 20 | A standard way to wrap a proto message | a day ago |
argon2-hashing (opens new window) | 19 | A light package for generating and comparing password hashing with argon2 in Go | 3 months ago |
fixedwidth (opens new window) | 8 | A Go package for encode/decode fixed-width data | 4 years ago |
unitpacking (opens new window) | 6 | A library for storing unit vectors in a representation that lends itself to saving space on disk. | a month ago |
go-lctree (opens new window) | 4 | go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]"). | 3 years ago |
# Stream Processing
- Libraries and tools for stream processing and reactive programming.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-streams (opens new window) | 1514 | A lightweight stream processing library for Go | 2 months ago |
machine (opens new window) | 133 | Machine is a workflow/pipeline library for processing data | 18 days ago |
stream (opens new window) | 80 | Go Stream, like Java 8 Stream. | 3 years ago |
# Template Engines
- Libraries and tools for templating and lexing.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gofpdf (opens new window) | 4169 | A PDF document generator with high level support for text, drawing and images | 2 years ago |
sprig (opens new window) | 3680 | Useful template functions for Go templates. | 8 days ago |
quicktemplate (opens new window) | 2817 | 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 | 2 months ago |
pongo2 (opens new window) | 2602 | Django-syntax like template-engine for Go | a month ago |
hero (opens new window) | 1543 | A handy, fast and powerful go template engine. | 4 years ago |
mustache (opens new window) | 1081 | The mustache template language in Go | 2 months ago |
jet (opens new window) | 1064 | Jet template engine | 8 months ago |
maroto (opens new window) | 1050 | A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple. | 3 months ago |
amber (opens new window) | 903 | Amber is an elegant templating engine for Go Programming Language, inspired from HAML and Jade | 3 years ago |
ace (opens new window) | 826 | HTML template engine for Go | 5 years ago |
gorazor (opens new window) | 824 | Razor view engine for go | 12 days ago |
fasttemplate (opens new window) | 733 | Simple and fast template engine for Go | 10 months ago |
ego (opens new window) | 561 | An ERB-style templating language for Go. | 5 months ago |
raymond (opens new window) | 545 | Handlebars for golang | 9 months ago |
goview (opens new window) | 357 | Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application. | 5 months ago |
liquid (opens new window) | 221 | A Liquid template engine in Go | a month ago |
soy (opens new window) | 169 | Go implementation for Soy templates (Google Closure templates) | 5 months ago |
kasia.go (opens new window) | 74 | Templating system for HTML and other text documents - go implementation | 8 years ago |
velvet (opens new window) | 72 | A sweet velvety templating package | 6 years ago |
extemplate (opens new window) | 53 | Wrapper package for Go's template/html to allow for easy file-based template inheritance. | 8 months ago |
gospin (opens new window) | 46 | Article spinning and spintax/spinning syntax engine written in Go, useful for A/B, testing pieces of text/articles and creating more natural conversations | 2 years ago |
tbd (opens new window) | 24 | "to be defined" - a really simple way to create text templates with placeholders | 2 years ago |
damsel (opens new window) | 23 | Package damsel provides html outlining via css-selectors and common template functionality. | 7 years ago |
# Testing
- Libraries for testing codebases and generating test data.
# Testing Frameworks
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
testify (opens new window) | 20303 | A toolkit with common assertions and mocks that plays nicely with the standard library | 2 days ago |
goconvey (opens new window) | 7852 | Go testing in the browser. Integrates with go test . Write behavioral tests in Go. | 12 days ago |
go-cmp (opens new window) | 3643 | Package for comparing Go values in tests | 2 months ago |
httpexpect (opens new window) | 2270 | End-to-end HTTP and REST API testing for Go. | a month ago |
godog (opens new window) | 2023 | Cucumber for golang | a month ago |
gnomock (opens new window) | 1216 | Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻 | a day ago |
go-vcr (opens new window) | 1031 | Record and replay your HTTP interactions for fast, deterministic and accurate tests | 19 days ago |
testfixtures (opens new window) | 968 | Ruby on Rails like test fixtures for Go. Write tests against a real database | 3 days ago |
goblin (opens new window) | 889 | Minimal and Beautiful Go testing framework | 8 months ago |
baloo (opens new window) | 762 | Expressive end-to-end HTTP API testing made easy in Go | a year ago |
goc (opens new window) | 701 | A Comprehensive Coverage Testing System for The Go Programming Language | 2 months ago |
embedded-postgres (opens new window) | 624 | Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test | 20 days ago |
go-mutesting (opens new window) | 601 | Mutation testing for Go source code | 2 months ago |
gotest.tools (opens new window) | 448 | A collection of packages to augment the go testing package and support common patterns. | 9 days ago |
gofight (opens new window) | 436 | Testing API Handler written in Golang. | 2 years ago |
testza (opens new window) | 411 | Full-featured test framework for Go! Assertions, fuzzing, input testing, output capturing, and much more! 🍕 | 16 hours ago |
go-testdeep (opens new window) | 396 | Extremely flexible golang deep comparison, extends the go testing package, tests HTTP APIs and provides tests suite | 9 days ago |
frisby (opens new window) | 275 | API testing framework inspired by frisby-js | 3 years ago |
cupaloy (opens new window) | 273 | Simple Go snapshot testing | 3 months ago |
endly (opens new window) | 244 | End to end functional test and automation framework | 12 hours ago |
go-carpet (opens new window) | 240 | Tool for show test coverage in terminal for Go source files | 6 days ago |
go-hit (opens new window) | 231 | http integration test framework | 4 hours ago |
commander (opens new window) | 213 | Test your command line interfaces on windows, linux and osx and nodes viá ssh and docker | 3 months ago |
charlatan (opens new window) | 199 | Go Interface Mocking Tool | 5 months ago |
dbcleaner (opens new window) | 156 | Clean database for testing, inspired by database_cleaner for Ruby | 2 years ago |
gospec (opens new window) | 113 | Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED] | 9 years ago |
jsonassert (opens new window) | 113 | A Go test assertion library for verifying that two representations of JSON are semantically equal | 2 months ago |
testcase (opens new window) | 111 | testcase is an opinionated testing framework to support test driven design. | a month ago |
wstest (opens new window) | 100 | go websocket client for unit testing of a websocket handler | 3 years ago |
gocrest (opens new window) | 94 | GoCrest - Hamcrest-like matchers for Go | 4 months ago |
assert (opens new window) | 59 | ❗️Basic Assertion Library used along side native go testing, with building blocks for custom assertions | a year ago |
covergates (opens new window) | 57 | The portal gates to coverage reports | 3 months ago |
restit (opens new window) | 56 | A Go library help testing your RESTful API application | 4 years ago |
gospecify (opens new window) | 53 | A BDD library for Go | 12 years ago |
gomatch (opens new window) | 46 | Library created for testing JSON against patterns. | 3 years ago |
dsunit (opens new window) | 43 | Datastore Testibility | 12 hours ago |
hamcrest (opens new window) | 28 | Hamcrest matchers for the Go programming language | 3 years ago |
schema (opens new window) | 20 | Quick and easy expression matching for JSON schemas used in requests and responses | 4 years ago |
fixenv (opens new window) | 19 | 3 months ago | |
flute (opens new window) | 17 | Golang HTTP client testing framework | 9 months ago |
gogiven (opens new window) | 16 | gogiven - BDD testing framework for go that generates readable output directly from source code | 4 months ago |
testsql (opens new window) | 16 | Generate test data from SQL files before testing and clear it after finished. | 4 years ago |
biff (opens new window) | 12 | Bifurcation Framework for testing and use cases | 7 months ago |
gosuite (opens new window) | 12 | Test suites support for standard Go1.7 "testing" by leveraging Subtests feature | 7 years ago |
badio (opens new window) | 10 | Extensions to Go's testing/iotest package | 7 years ago |
stop-and-go (opens new window) | 9 | Testing helper for concurrency | 2 months ago |
test (opens new window) | 8 | test utilities for golang | 4 years ago |
trial (opens new window) | 6 | A simple assertion library for go | 10 months ago |
tt (opens new window) | 6 | Simple and colorful test tools | 5 months ago |
# Mock
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
mock (opens new window) | 9046 | GoMock is a mocking framework for the Go programming language. | 25 days ago |
go-sqlmock (opens new window) | 5402 | Sql mock driver for golang to test database interactions | 3 months ago |
mockery (opens new window) | 4863 | A mock code autogenerator for Go | 3 days ago |
hoverfly (opens new window) | 2226 | Lightweight service virtualization/ API simulation / API mocking tool for developers and testers | a day ago |
gock (opens new window) | 1900 | HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽ | a month ago |
httpmock (opens new window) | 1716 | HTTP mocking for Golang | 15 days ago |
counterfeiter (opens new window) | 855 | A tool for generating self-contained, type-safe test doubles in go | 7 days ago |
go-txdb (opens new window) | 556 | Immutable transaction isolated sql driver for golang | 8 days ago |
minimock (opens new window) | 506 | Powerful mock generation tool for Go programming language | 4 months ago |
govcr (opens new window) | 154 | HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing | 9 days ago |
go-localstack (opens new window) | 72 | Go Wrapper for using localstack | a day ago |
timex (opens new window) | 69 | A test-friendly replacement for golang's time package | 3 years ago |
mockhttp (opens new window) | 22 | Mock object for Go http.ResponseWriter | 9 years ago |
mockit (opens new window) | 16 | Library that make mocking of Go functions/methods easy | 3 months ago |
# Fuzzing and delta-debugging/reducing/shrinking
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-fuzz (opens new window) | 4638 | Randomized testing for Go | 2 months ago |
gofuzz (opens new window) | 1443 | Fuzz testing for go. | 9 months ago |
tavor (opens new window) | 242 | A generic fuzzing and delta-debugging framework | 5 years ago |
# Selenium and browser control tools
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
chromedp (opens new window) | 9381 | A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol. | 3 days ago |
rod (opens new window) | 4025 | A Devtools driver for web automation and scraping | 7 days ago |
selenoid (opens new window) | 2398 | Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. | a day ago |
playwright-go (opens new window) | 1383 | Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API. | 4 days ago |
cdp (opens new window) | 679 | Package cdp provides type-safe bindings for the Chrome DevTools Protocol (CDP), written in the Go programming language. | 4 months ago |
ggr (opens new window) | 302 | A lightweight load balancer used to create big Selenium clusters | a month ago |
# Fail injection
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
failpoint (opens new window) | 783 | An implementation of failpoints for Golang. | a year ago |
# Text Processing
- Libraries for parsing and manipulating texts.
# Specific Formats
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
colly (opens new window) | 20122 | Elegant Scraper and Crawler Framework for Golang | 19 days ago |
goquery (opens new window) | 12817 | A little like that j-thing, only in Go. | a month ago |
sh (opens new window) | 6076 | A shell parser, formatter, and interpreter with bash support; includes shfmt | 7 days ago |
blackfriday (opens new window) | 5202 | Blackfriday: a markdown processor for Go | a year ago |
toml (opens new window) | 4248 | TOML parser for Golang with reflection. | 2 months ago |
go-humanize (opens new window) | 3701 | Go Humans! (formatters for units to human friendly sizes) | 3 hours ago |
bluemonday (opens new window) | 2759 | bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS | 18 hours ago |
gofeed (opens new window) | 2221 | Parse RSS, Atom and JSON feeds in Go | 11 days ago |
go-toml (opens new window) | 1473 | Go library for the TOML file format | 22 days ago |
inject (opens new window) | 1394 | Package inject provides a reflect based injector. | 5 years ago |
slug (opens new window) | 983 | URL-friendly slugify with multiple languages support. | a month ago |
commonregex (opens new window) | 864 | 🍫 A collection of common regular expressions for Go | 4 years ago |
htmlquery (opens new window) | 623 | htmlquery is golang XPath package for HTML query. | 5 months ago |
dataflowkit (opens new window) | 605 | Extract structured data from web sites. Web sites scraping. | 5 months ago |
omniparser (opens new window) | 589 | omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc. | 14 days ago |
html-to-markdown (opens new window) | 581 | ⚙️ Convert HTML to Markdown. Even works with entire websites and can be extended through rules. | 21 hours ago |
mxj (opens new window) | 568 | Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. | 15 days ago |
go-runewidth (opens new window) | 539 | wcwidth for golang | 5 hours ago |
gographviz (opens new window) | 527 | Parses the Graphviz DOT language in golang | 5 months ago |
gommon (opens new window) | 498 | Common packages for Go | 5 months ago |
gotext (opens new window) | 388 | Go (Golang) GNU gettext utilities package | 13 days ago |
goq (opens new window) | 243 | A declarative struct-tag-based HTML unmarshaling or scraping package for Go built on top of the goquery library | 2 years ago |
goribot (opens new window) | 211 | [Crawler/Scraper for Golang]🕷A lightweight distributed friendly Golang crawler framework.一个轻量的分布式友好的 Golang 爬虫框架。 | 3 years ago |
go-nmea (opens new window) | 197 | A NMEA parser library in pure Go | a month ago |
gospider (opens new window) | 196 | ⚡ Light weight Golang spider framework , 轻量的 Golang 爬虫框架 | 2 years ago |
github_flavored_markdown (opens new window) | 158 | GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. | 2 years ago |
podcast (opens new window) | 125 | iTunes and RSS 2.0 Podcast Generator in Golang | 3 years ago |
editorconfig-core-go (opens new window) | 120 | EditorConfig Core written in Go | a month ago |
sdp (opens new window) | 112 | RFC 4566 SDP implementation in go | 3 years ago |
go-zero-width (opens new window) | 110 | Zero-width character detection and removal for Go | 3 years ago |
go-vcard (opens new window) | 89 | A Go library to parse and format vCard | a month ago |
go-slugify (opens new window) | 87 | Pretty Slug. | 3 years ago |
pagser (opens new window) | 85 | Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler | 2 years ago |
goregen (opens new window) | 84 | randexp for Go. | a year ago |
align (opens new window) | 80 | A general purpose application and library for aligning text. | 2 years ago |
bafi (opens new window) | 78 | Universal JSON, BSON, YAML, CSV, XML converter with templates | 10 months ago |
did (opens new window) | 77 | A golang package to work with Decentralized Identifiers (DIDs) | 7 months ago |
genex (opens new window) | 75 | Genex package for Go | 4 years ago |
go-fixedwidth (opens new window) | 75 | Encoding and decoding for fixed-width formatted data | 3 months ago |
allot (opens new window) | 58 | Parse placeholder and wildcard text commands | 2 years ago |
guesslanguage (opens new window) | 57 | Guess the natural language of a text in Go | 6 years ago |
go-wildcard (opens new window) | 48 | 🚀 Fast and light wildcard pattern matching. | 3 months ago |
gonameparts (opens new window) | 38 | Takes a full name and splits it into individual name parts | 4 years ago |
normalize (opens new window) | 36 | 2 years ago | |
slugify (opens new window) | 32 | A Go slugify application that handles string | 5 years ago |
codetree (opens new window) | 22 | 🌲 Parses indented code and returns a tree structure. | 4 years ago |
enca (opens new window) | 15 | Minimal cgo bindings for libenca | 7 years ago |
gout (opens new window) | 11 | Output go objects in standard formats, such as YAML, JSON, etc | 7 months ago |
syndfeed (opens new window) | 11 | A syndication feed parser for Atom 1.0 and RSS 2.0 in Go | 5 years ago |
doi (opens new window) | 8 | Parse and check doi objects in go. | 6 years ago |
encoding (opens new window) | 8 | Go package provides a generic interface to encoders and decoders | 4 years ago |
ltsv (opens new window) | 8 | High performance LTSV (Labeled Tab Separeted Value) reader for Go. | 4 years ago |
bbConvert (opens new window) | 7 | Converter from BBCode to HTML | 7 years ago |
# Utility
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
xurls (opens new window) | 1066 | Extract urls from text | 17 days ago |
gotabulate (opens new window) | 299 | Gotabulate - Easily pretty-print your tabular data with Go | 2 years ago |
radix (opens new window) | 186 | A fast string sorting algorithm (MSD radix sort) | 5 years ago |
regroup (opens new window) | 132 | Match regex group into go struct using struct tags and automatic parsing | 2 months ago |
gofuckyourself (opens new window) | 57 | A sanitization-based swear filter for Go. | 4 months ago |
parth (opens new window) | 43 | Path parsing for segment unmarshaling and slicing. | 5 years ago |
tagify (opens new window) | 33 | Tagify produces a set of tags from a given source. Source can be either an HTML page, a Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages. | a month ago |
xj2go (opens new window) | 31 | Convert xml and json to go struct | 2 years ago |
kace (opens new window) | 20 | Common case conversions covering common initialisms. | 5 years ago |
TySug (opens new window) | 17 | A project around helping to prevent typing typos. TySug (Typo Suggestions) suggests alternative words with respect to keyboard layouts | 5 months ago |
parseargs-go (opens new window) | 9 | A string argument parser that understands quotes and backslashes | 7 years ago |
textwrap (opens new window) | 4 | Port of Python's "textwrap" module to Go | 4 years ago |
# Third-party APIs
- Libraries for accessing third party APIs.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-github (opens new window) | 9572 | Go library for accessing the GitHub v3 API | a minute ago |
aws-sdk-go (opens new window) | 8380 | AWS SDK for the Go programming language. | 14 hours ago |
slack (opens new window) | 4373 | Slack API in Go - community-maintained fork created by the original author, @nlopes | a day ago |
discordgo (opens new window) | 4157 | (Golang) Go bindings for Discord | 13 hours ago |
google-api-go-client (opens new window) | 3528 | Auto-generated Google APIs for Go. | an hour ago |
google-cloud-go (opens new window) | 3342 | Google Cloud Client Libraries for Go. | 4 hours ago |
minio-go (opens new window) | 2006 | MinIO Go client SDK for S3 compatible object storage | 16 hours ago |
stripe-go (opens new window) | 1832 | Go library for the Stripe API. | 4 hours ago |
go-twitter (opens new window) | 1588 | Go Twitter REST and Streaming API v1.1 | 9 months ago |
go-jira (opens new window) | 1342 | Go client library for Atlassian Jira | a month ago |
facebook (opens new window) | 1173 | A Facebook Graph API SDK For Go. | 13 days ago |
anaconda (opens new window) | 1139 | A Go client library for the Twitter 1.1 API | a year ago |
githubv4 (opens new window) | 1030 | Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://docs.github.com/en/graphql). | a month ago |
webhooks (opens new window) | 854 | 🎣 Webhook receiver for GitHub, Bitbucket, GitLab, Gogs | 17 hours ago |
twitter-scraper (opens new window) | 641 | Scrape the Twitter frontend API without authentication with Golang. | a month ago |
paypal (opens new window) | 588 | Golang client for PayPal REST API | 6 months ago |
geo-golang (opens new window) | 473 | Go library to access geocoding and reverse geocoding APIs | 8 months ago |
ethrpc (opens new window) | 256 | Golang client for ethereum json rpc api | a month ago |
trello (opens new window) | 211 | Trello API wrapper for Go | a year ago |
go-marathon (opens new window) | 201 | A GO API library for working with Marathon | 3 years ago |
wit-go (opens new window) | 144 | Go client for wit.ai HTTP API | 10 months ago |
medium-sdk-go (opens new window) | 138 | A Golang SDK for Medium's OAuth2 API | 5 years ago |
go-trending (opens new window) | 135 | Go library for accessing trending repositories and developers at Github. | 3 months ago |
pushover (opens new window) | 135 | Go wrapper for the Pushover API | 3 months ago |
gostorm (opens new window) | 130 | 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. | 6 years ago |
simples3 (opens new window) | 115 | Simple no frills AWS S3 Golang Library using REST with V4 Signing (without AWS Go SDK) | a year ago |
gosip (opens new window) | 113 | ⚡️ SharePoint SDK for Go | 4 months ago |
hipchat (opens new window) | 110 | A golang package to communicate with HipChat over XMPP | 6 years ago |
hipchat (opens new window) | 104 | This project implements a Go client library for the Hipchat API. | 7 years ago |
cachet (opens new window) | 91 | Go(lang) client library for Cachet (open source status page system). | 2 years ago |
golang-tmdb (opens new window) | 81 | This is a Golang wrapper for working with TMDb API. It aims to support version 3. | a month ago |
igdb (opens new window) | 77 | Go client for the Internet Game Database API | 6 months ago |
go-unsplash (opens new window) | 72 | Go Client for the Unsplash API | 4 months ago |
gogtrends (opens new window) | 72 | Unofficial Google Trends API for Go | 7 months ago |
go-postman-collection (opens new window) | 70 | Go module to work with Postman Collections | a year ago |
google-play-scraper (opens new window) | 68 | Golang scraper to get data from Google Play Store | 4 months ago |
go-circleci (opens new window) | 64 | Go library for interacting with CircleCI | 4 years ago |
airtable (opens new window) | 63 | Simple golang airtable API wrapper | a month ago |
mixpanel (opens new window) | 60 | Golang Mixpanel Client | 3 months ago |
ynab.go (opens new window) | 59 | Go client for the YNAB API. Unofficial. It covers 100% of the resources made available by the YNAB API. | 9 days ago |
go-amazon-product-advertising-api (opens new window) | 57 | Go Client Library for Amazon Product Advertising API | 5 years ago |
clarifai-go (opens new window) | 56 | DEPRECATED: please use https://github.com/Clarifai/clarifai-go-grpc | 6 years ago |
uptimerobot (opens new window) | 56 | Client library for UptimeRobot v2 API | 4 months ago |
megos (opens new window) | 54 | Go(lang) client library for accessing information of an Apache Mesos cluster. | 2 years ago |
go-xkcd (opens new window) | 51 | xkcd.com API client in Go | 10 months ago |
fcm (opens new window) | 50 | Firebase Cloud Messaging for application servers implemented using the Go programming language. | 3 years ago |
gads (opens new window) | 50 | Google Adwords API for Go | 2 years ago |
gomusicbrainz (opens new window) | 50 | a Go (Golang) MusicBrainz WS2 client library - work in progress | 3 months ago |
go-spotify (opens new window) | 47 | Go library for the Spotify Web API | 3 years ago |
golyrics (opens new window) | 40 | A simple Go package to fetch lyrics from Wikia | 5 years ago |
go-myanimelist (opens new window) | 36 | Go library for accessing the MyAnimeList API: https://myanimelist.net/apiconfig/references/api/v2 | 4 months ago |
patreon-go (opens new window) | 36 | Patreon Go API client | a year ago |
translate (opens new window) | 33 | Go online translation package | 7 years ago |
gami (opens new window) | 31 | GO - Asterisk AMI Interface | 5 years ago |
gcm (opens new window) | 31 | Google Cloud Messaging for application servers implemented using the Go programming language. | 8 years ago |
lastpass-go (opens new window) | 31 | Golang client for LastPass | 2 months ago |
go-steam (opens new window) | 30 | Go library for querying Source servers | 2 years ago |
go-imgur (opens new window) | 25 | Go library to use the imgur.com API | 2 months ago |
go-shopify (opens new window) | 25 | Simple Shopify API for the Go Programming Language | 3 years ago |
device-check-go (opens new window) | 21 | 📱 iOS DeviceCheck SDK for Go - query and modify the per-device bits | 4 months ago |
coinpaprika-api-go-client (opens new window) | 20 | Go client library for interacting with Coinpaprika's API | 3 months ago |
brewerydb (opens new window) | 19 | Go library for http://www.brewerydb.com/ API | 8 years ago |
codeship-go (opens new window) | 19 | Go library for accessing the Codeship API v2 | 3 years ago |
textbelt (opens new window) | 19 | golang library for textbelt.com | 8 years ago |
go-aws-news (opens new window) | 18 | Go app + library to fetch what's new from AWS | 5 months ago |
go-hacknews (opens new window) | 16 | 📟 Tiny utility Go client for HackerNews API. | 6 years ago |
go-google-analytics (opens new window) | 15 | Simple Reporting for Google Analytics | 8 years ago |
gopaapi5 (opens new window) | 14 | Go Client Library for Amazon's Product Advertising API 5.0 | 3 years ago |
go-openproject (opens new window) | 13 | Go client library for OpenProject | 9 months ago |
go-sophos (opens new window) | 13 | Sophos UTM 9 REST API Client in Golang | a year ago |
go-here (opens new window) | 12 | Go client library around the HERE location based APIs. | 3 years ago |
go-swagger-ui (opens new window) | 11 | Golang package which provides http Handlers to serve the swagger ui | 10 months ago |
gomalshare (opens new window) | 11 | Go library MalShare API | 4 years ago |
smitego (opens new window) | 11 | SmiteGo is an API wrapper for the Smite game from HiRez. It is written in Go! | 9 years ago |
libgoffi (opens new window) | 9 | libgoffi - libffi adapter library for Go | 3 years ago |
rrdaclient (opens new window) | 9 | Go bindings for RRDA https://github.com/fcambus/rrda | 9 years ago |
gumblr (opens new window) | 9 | A Go Wrapper for the Tumblr v2 API | 7 years ago |
go-chronos (opens new window) | 8 | 👯 Go Chronos 3.x REST API Client | 6 years ago |
go-sptrans (opens new window) | 8 | Go client library for the SPTrans Olho Vivo API. 🚌 | 3 years ago |
go-google-email-audit-api (opens new window) | 8 | Go Client Library for G Suite Email Audit API | 7 years ago |
rawg-sdk-go (opens new window) | 8 | This is RAWG SDK GO. This library contains methods for interacting with RAWG API. | a year ago |
go-zooz (opens new window) | 7 | Zooz API client for Go | 8 months ago |
appstore-sdk-go (opens new window) | 3 | Golang SDK for AppStore Connect API (Unofficial) | 5 months ago |
go-restcountries (opens new window) | 3 | Go wrapper for the REST Countries API. | 2 years ago |
kanka (opens new window) | 3 | Go client for the Kanka API | 3 years ago |
playlyfe-go-sdk (opens new window) | 2 | This is the official Playlyfe Golang Sdk | 7 years ago |
tripadvisor-golang (opens new window) | 2 | A TripAdvisor API wrapper for Golang. | 4 years ago |
vl-go (opens new window) | 2 | Go client library around the VerifID identity verification layer API. | 2 years ago |
# Utilities
- General utilities and tools to make your life easier.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
fzf (opens new window) | 53635 | 🌸 A command-line fuzzy finder | 3 hours ago |
hub (opens new window) | 22511 | A command-line tool that makes git easier to use with GitHub. | 14 days ago |
ctop (opens new window) | 14520 | Top-like interface for container metrics | 3 months ago |
sqlx (opens new window) | 14013 | general purpose extensions to golang's database/sql | 3 days ago |
goreleaser (opens new window) | 11942 | Deliver Go binaries as fast and easily as possible | 7 minutes ago |
wuzz (opens new window) | 10342 | Interactive cli tool for HTTP inspection | 8 months ago |
usql (opens new window) | 8161 | Universal command-line interface for SQL databases | 5 days ago |
peco (opens new window) | 7400 | Simplistic interactive filtering tool | 5 months ago |
go-funk (opens new window) | 4342 | A modern Go utility library which provides helpers (map, find, contains, filter, ...) | 3 hours ago |
godropbox (opens new window) | 4133 | Common libraries for writing Go services/applications. | 2 months ago |
hystrix-go (opens new window) | 4012 | Netflix's Hystrix latency and fault tolerance library, for Go | 6 months ago |
panicparse (opens new window) | 3431 | Crash your app in style (Golang) | a month ago |
minify (opens new window) | 3395 | Go minifiers for web formats | 13 hours ago |
goreporter (opens new window) | 3078 | A Golang tool that does static analysis, unit testing, code review and generate code quality report. | 5 years ago |
mc (opens new window) | 2514 | Simple , Fast tool to manage MinIO clusters ☁️ | 22 minutes ago |
cli (opens new window) | 2139 | ✨ A complete and self-contained solution for developers of any qualification to create a production-ready project with backend (Go), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one CLI command. | 6 days ago |
spinner (opens new window) | 2131 | Go (golang) package with 90 configurable terminal spinner/progress indicators. | 2 months ago |
storm (opens new window) | 1999 | Simple and powerful toolkit for BoltDB | 2 years ago |
filetype (opens new window) | 1879 | Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature | 5 months ago |
mole (opens new window) | 1658 | CLI application to create ssh tunnels focused on resiliency and user experience. | 4 months ago |
jump (opens new window) | 1652 | Jump helps you navigate faster by learning your habits. ✌️ | 23 days ago |
boilr (opens new window) | 1637 | ⚡️ boilerplate template manager that generates files or directories from template repositories | 5 months ago |
mimetype (opens new window) | 1173 | A fast Golang library for media type and file extension detection, based on magic numbers | 21 hours ago |
circuitbreaker (opens new window) | 1077 | Circuit Breakers in Go | a year ago |
scany (opens new window) | 968 | Library for scanning data from a database into Go structs and more | 5 months ago |
gtm (opens new window) | 947 | Simple, seamless, lightweight time tracking for Git | 2 years ago |
hostctl (opens new window) | 918 | Your dev tool to manage /etc/hosts like a pro! | 3 months ago |
immortal (opens new window) | 766 | ⭕ A *nix cross-platform (OS agnostic) supervisor | a year ago |
circuit (opens new window) | 708 | An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. | 5 months ago |
delve (opens new window) | 597 | Delve is a debugger for the Go programming language. | a month ago |
ergo (opens new window) | 574 | The management of multiple apps running over different ports made easy | a day ago |
htcat (opens new window) | 552 | Parallel and Pipelined HTTP GET Utility | 4 years ago |
koazee (opens new window) | 521 | A StreamLike, Immutable, Lazy Loading and smart Golang Library to deal with slices. | 3 years ago |
clockwork (opens new window) | 508 | a fake clock for golang | 22 days ago |
changie (opens new window) | 490 | Automated changelog tool for preparing releases with lots of customization options | a day ago |
godaemon (opens new window) | 490 | Daemonize Go applications deviously. | 2 years ago |
go-dry (opens new window) | 486 | DRY (don't repeat yourself) package for Go | 3 days ago |
gopencils (opens new window) | 446 | Easily consume REST APIs with Go (golang) | 4 years ago |
gubrak (opens new window) | 441 | ⚙️ Golang functional utility library with syntactic sugar. It's like lodash, but for Go | 5 months ago |
clipboard (opens new window) | 429 | 📋 cross-platform clipboard package that supports accessing text and image in Go (macOS/Linux/Windows/Android/iOS) | 2 months ago |
request (opens new window) | 428 | A developer-friendly HTTP request library for Gopher. | 4 years ago |
scan (opens new window) | 423 | Tiny lib to scan SQL rows directly to structs, slices, and primitive types | 21 hours ago |
deepcopier (opens new window) | 417 | simple struct copying for golang | 3 years ago |
go-rate (opens new window) | 389 | A timed rate limiter for Go | a year ago |
mani (opens new window) | 377 | 🤖 CLI tool to help you manage repositories | 2 months ago |
retry (opens new window) | 334 | ♻️ The most advanced interruptible mechanism to perform actions repetitively until successful. | 2 years ago |
serve (opens new window) | 305 | 🍽️ a static http server anywhere you need one. | 2 months ago |
grofer (opens new window) | 278 | A system and resource monitoring tool written in Golang! | 4 months ago |
util (opens new window) | 278 | A collection of useful utility functions | a year ago |
countries (opens new window) | 270 | Countries - ISO-639, ISO-3166 countries codes with subdivisions and names, ISO-4217 currency designators, ITU-T E.164 IDD phone codes, countries capitals, UN M.49 codes, IANA ccTLD countries domains, IOC/NOC and FIFA codes, VERY VERY FAST, compatible with Databases/JSON/BSON/GOB/XML/CSV, Emoji countries flags and currencies support, Unicode CLDR. | 6 days ago |
gotenv (opens new window) | 266 | Load environment variables from .env or io.Reader in Go. | 12 days ago |
gohper (opens new window) | 255 | [UNMATAINED] common libs here. | 6 years ago |
go-trigger (opens new window) | 234 | A Global event triggerer for golang. Defines functions as event with id string. Trigger the event anywhere from your project. | 6 years ago |
rospo (opens new window) | 232 | 🐸 Simple, reliable, persistent ssh tunnels with embedded ssh server | 21 hours ago |
go-pattern-match (opens new window) | 229 | Pattern matchings for Go. | 5 months ago |
go-sitemap-generator (opens new window) | 204 | go-sitemap-generator is the easiest way to generate Sitemaps in Go | a month ago |
toolbox (opens new window) | 192 | Toolbox - go utility library | 21 days ago |
death (opens new window) | 190 | Managing go application shutdown with signals. | a year ago |
go-bind-plugin (opens new window) | 183 | go-bind-plugin generates API for exported plugin symbols (-buildmode=plugin) - go1.8+ only (http://golang.org/pkg/plugin) | 4 years ago |
limiters (opens new window) | 180 | Golang rate limiters for distributed applications | 4 months ago |
moldova (opens new window) | 166 | A lightweight templating system for generating random data | 6 years ago |
rerun (opens new window) | 165 | Configurable recompiling and rerunning go apps when source changes | 5 years ago |
apm (opens new window) | 163 | APM is a process manager for Golang applications. | 7 years ago |
robustly (opens new window) | 156 | Run functions resiliently in Go, catching and restarting panics | 2 years ago |
chyle (opens new window) | 150 | Changelog generator : use a git repository and various data sources and publish the result on external services | 11 days ago |
go-bsdiff (opens new window) | 145 | Pure Go bsdiff and bspatch libraries and CLI tools. | 4 years ago |
cryptgo (opens new window) | 136 | A terminal application to watch crypto prices! | 2 years ago |
nostromo (opens new window) | 135 | 👽 CLI for building powerful aliases and tools | 5 months ago |
cmd (opens new window) | 134 | A simple package to execute shell commands on linux, windows and osx | 4 months ago |
onecache (opens new window) | 133 | One caching API, Multiple backends | 3 years ago |
filter (opens new window) | 132 | ⏳ Provide filtering, sanitizing, and conversion of Golang data. 提供对Golang数据的过滤,净化,转换。 | 4 days ago |
lrserver (opens new window) | 124 | LiveReload server for Go [golang] | 3 months ago |
goval (opens new window) | 123 | Expression evaluation in golang | 9 months ago |
mongo-go-pagination (opens new window) | 123 | Golang Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines with all information like Total records, Page, Per Page, Previous, Next, Total Page and query results. | 5 months ago |
sorty (opens new window) | 122 | ⚡️ Fast Concurrent / Parallel Sorting in Go | 6 months ago |
goseaweedfs (opens new window) | 102 | A complete Golang client for SeaweedFS | 9 months ago |
mssqlx (opens new window) | 101 | Database client library, proxy for any master slave, master master structures. Lightweight, performant and auto balancing in mind. | 2 months ago |
xferspdy (opens new window) | 99 | Xferspdy provides binary diff and patch library in golang. [Mentioned in Awesome Go, https://github.com/avelino/awesome-go] | 2 years ago |
go-lock (opens new window) | 93 | go-lock is a lock library implementing read-write mutex and read-write trylock without starvation | a year ago |
go-health (opens new window) | 92 | ❤️ Health check your applications and dependencies | 2 years ago |
mimemagic (opens new window) | 91 | 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. | 5 months ago |
pgo (opens new window) | 82 | Go library for PHP community with convenient functions | 3 months ago |
repeat (opens new window) | 81 | Go implementation of different backoff strategies useful for retrying operations and heartbeating. | 3 years ago |
pm (opens new window) | 78 | Processlist manager with TCP listener | 3 years ago |
handy (opens new window) | 74 | GO Golang Utilities and helpers like validators and string formatters | 3 years ago |
netbug (opens new window) | 72 | Package netbug provides a handler for registering profilers on your own ServeMux. | 8 years ago |
unis (opens new window) | 70 | UNIS: A Common Architecture for String Utilities within the Go Programming Language. | 6 years ago |
multitick (opens new window) | 67 | A multiplexor for aligned time.Time tickers in Go | 2 years ago |
goreadability (opens new window) | 66 | Webpage summary extractor using Facebook Open Graph and arc90's readability | 4 years ago |
retry (opens new window) | 63 | Simple and easy retry mechanism package for Go | 2 years ago |
go-astitodo (opens new window) | 60 | Parse TODOs in your GO code | 12 days ago |
minquery (opens new window) | 60 | MongoDB / mgo query that supports efficient pagination (cursors to continue listing documents where we left off). | 4 months ago |
golog (opens new window) | 59 | Easy and simple CLI time tracker for your tasks | 5 years ago |
dbt (opens new window) | 57 | A delivery system for running self-updating, signed tools. | 5 months ago |
beyond (opens new window) | 53 | The Go library that will drive you to AOP world! | 4 months ago |
shutdown (opens new window) | 52 | Golang app shutdown hooks. | 2 years ago |
slice (opens new window) | 51 | Type-safe functions for common Go slice operations | 3 years ago |
copy-pasta (opens new window) | 50 | Universal copy paste service, works across different machines! | 3 years ago |
golarm (opens new window) | 50 | Fire alarms with system events | 8 years ago |
goback (opens new window) | 48 | Golang simple exponential backoff package. | 2 years ago |
retry-go (opens new window) | 48 | Retrying made simple and easy for golang 🔁 | 5 years ago |
backscanner (opens new window) | 46 | A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. | 4 months ago |
intrinsic (opens new window) | 46 | Provide Golang native SIMD intrinsics on x86/amd64 platform | 6 years ago |
set (opens new window) | 44 | Package set is a small wrapper around the official reflect package that facilitates loose type conversion and assignment into native Go types. | a year ago |
sshman (opens new window) | 44 | SSH Manager - manage users through authorized_keys files | 9 months ago |
equalizer (opens new window) | 43 | A rate limiters package for Go | 2 years ago |
go-httpheader (opens new window) | 43 | A Go library for encoding structs into Header fields. | 24 days ago |
slicer (opens new window) | 43 | Utility class for handling slices | 2 years ago |
gostrutils (opens new window) | 41 | Collections of string utils I have created over the years | 4 months ago |
gpath (opens new window) | 40 | gpath is a Go package to access a field by a path using reflect pacakge | 6 years ago |
evaluator (opens new window) | 37 | 4 months ago | |
ghokin (opens new window) | 35 | Parallelized formatter with no external dependencies for gherkin (cucumber, behat...) | 2 months ago |
myhttp (opens new window) | 35 | Simplest HTTP GET requester for Go with timeout support | 5 years ago |
rclient (opens new window) | 35 | Minimalistic REST client for Go applications | 4 years ago |
tome (opens new window) | 34 | Package tome was designed to paginate simple RESTful APIs. | a year ago |
copy (opens new window) | 33 | Package for fast copying structs of different types | 3 years ago |
throttle (opens new window) | 33 | lodash throttle like Go library | 2 years ago |
generate (opens new window) | 29 | 🏃runs go generate recursively on a specified path or environment variable and can filter by regex | 7 years ago |
mimesniffer (opens new window) | 28 | A MIME type sniffer for Go. | a year ago |
ugo (opens new window) | 27 | Simple and expressive toolbox written in Go | 7 years ago |
goplaceholder (opens new window) | 26 | a small golang lib to generate placeholder images | 8 years ago |
rerate (opens new window) | 25 | redis-based rate counter and rate limiter | 6 years ago |
ctxutil (opens new window) | 23 | utils for Go context | 3 years ago |
structs (opens new window) | 22 | Golang struct operations. | 6 years ago |
ptr (opens new window) | 21 | Contains functions for simplified creation of pointers from constants of basic types | 2 months ago |
go-convert (opens new window) | 20 | Convert a value into another type | 2 months ago |
jsend (opens new window) | 19 | 💯 JSend's implementation writen in Go(golang) | 2 years ago |
dlog (opens new window) | 17 | Simple build-time controlled debug log with ability to log where the logger was called | 6 years ago |
filler (opens new window) | 17 | fill struct data easily with fill tags | 6 years ago |
go-problemdetails (opens new window) | 17 | Problem json implementation (https://tools.ietf.org/html/rfc7807) package for go | 3 years ago |
okrun (opens new window) | 16 | ok, run your gofile | 9 years ago |
rest-go (opens new window) | 16 | A package that provide many helpful methods for working with rest api. | 3 years ago |
go-types (opens new window) | 15 | Library providing opanapi3 and Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types. | 15 days ago |
command (opens new window) | 14 | Command pattern for Go with thread safe serial and parallel dispatcher | 7 years ago |
go-actuator (opens new window) | 14 | Golang production-ready features | a year ago |
go-clip (opens new window) | 12 | A minimalistic clipboard manager for Mac. | 3 years ago |
silk (opens new window) | 12 | Silk File Reader | a year ago |
retry (opens new window) | 11 | A pretty simple library to ensure your work to be done | 3 years ago |
blank (opens new window) | 10 | Detect blank strings or remove whitespace from strings | 4 years ago |
go-countries (opens new window) | 10 | 3 years ago | |
statiks (opens new window) | 10 | Fast, zero-configuration, static HTTP filer server. | 3 years ago |
bleep (opens new window) | 9 | OS Signal Handlers in Go | 3 years ago |
retry (opens new window) | 9 | Percolate's Go retry package | 5 months ago |
nfdump (opens new window) | 8 | NFDump File Reader | 6 months ago |
sliceconv (opens new window) | 8 | Slice conversion between primitive types | 4 years ago |
lets-go (opens new window) | 6 | Go module that provides common utilities for Cloud Native development | 2 years ago |
olaf (opens new window) | 5 | Twitter Snowflake implemented in Go | 4 years ago |
tik (opens new window) | 5 | hierarchical timing wheel | 3 years ago |
goctx (opens new window) | 4 | Get your context value faster | 3 years ago |
mergo (opens new window) | 0 | Mergo: merging Go structs and maps since 2013 | 10 days ago |
# UUID
- Libraries for working with UUIDs.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
uuid (opens new window) | 4477 | Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. | 5 days ago |
ulid (opens new window) | 3590 | Universally Unique Lexicographically Sortable Identifier (ULID) in Go | a month ago |
uuid (opens new window) | 1393 | A UUID package originally forked from github.com/satori/go.uuid | a month ago |
wuid (opens new window) | 499 | An extremely fast globally unique number generator. | 6 months ago |
sno (opens new window) | 86 | Compact, sortable and fast unique IDs with embedded metadata. | 2 years ago |
nanoid (opens new window) | 58 | A tiny and fast Go unique string generator | a year ago |
Goid (opens new window) | 38 | A UUIDv4 generation package written in go | 4 years ago |
gouid (opens new window) | 21 | Fast, dependable universally unique ids | a year ago |
uuid (opens new window) | 15 | Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. | 3 years ago |
# Validation
- Libraries for validation.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
joi (opens new window) | 20129 | The most powerful data validation library for JS | a month ago |
validator (opens new window) | 13669 | 💯Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving | 11 hours ago |
govalidator (opens new window) | 5750 | [Go] Package of validators and sanitizers for strings, numerics, slices and structs | 2 months ago |
ozzo-validation (opens new window) | 3281 | An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags. | 4 months ago |
govalidator (opens new window) | 1232 | Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. | 3 months ago |
validate (opens new window) | 921 | ⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。 | 2 days ago |
checkdigit (opens new window) | 101 | Provide check digit algorithms and calculators written in Go | 3 months ago |
jio (opens new window) | 86 | jio is a json schema validator similar to joi | 3 years ago |
validate (opens new window) | 86 | This package provides a framework for writing validations for Go applications. | 10 months ago |
terraform-validator (opens new window) | 79 | A norms and conventions validator for Terraform | a year ago |
gody (opens new window) | 64 | 🎈 A lightweight struct validator for Go | 3 years ago |
govalid (opens new window) | 34 | Struct validation using tags | 2 years ago |
# Version Control
- Libraries for version control.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-git (opens new window) | 4837 | A highly extensible Git implementation in pure Go. | a day ago |
glab (opens new window) | 2082 | The GitLab CLI tool. Archived: now officially adopted by GitLab as the official CLI tool and maintained at https://gitlab.com/gitlab-org/cli. See https://github.com/profclems/glab/issues/983 | 10 months ago |
hercules (opens new window) | 1911 | Gaining advanced insights from Git repository history. | 6 months ago |
git2go (opens new window) | 1860 | Git to Go; bindings for libgit2. Like McDonald's but tastier. | 4 months ago |
gh (opens new window) | 79 | Scriptable server and net/http middleware for GitHub Webhooks. | 5 years ago |
Githooks (opens new window) | 76 | 🦎 Githooks: per-repo and shared Git hooks with version control and auto update. | 19 days ago |
go-vcs (opens new window) | 75 | manipulate and inspect VCS repositories in Go | 22 days ago |
hgo (opens new window) | 15 | Hgo is a collection of Go packages providing read-access to local Mercurial repositories. | 8 years ago |
# Video
- Libraries for manipulating video.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
goav (opens new window) | 2009 | Golang bindings for FFmpeg (This repository is no longer maintained) | a year ago |
m3u8 (opens new window) | 1059 | Parser and generator of M3U8-playlists for Apple HLS. Library for Go language. 🎦 | 8 days ago |
gmf (opens new window) | 855 | Go Media Framework | a year ago |
go-astits (opens new window) | 492 | Demux and mux MPEG Transport Streams (.ts) natively in GO | 4 hours ago |
go-astisub (opens new window) | 482 | Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.) | 3 days ago |
gortsplib (opens new window) | 460 | RTSP 1.0 client and server library for the Go programming language | an hour ago |
libvlc-go (opens new window) | 359 | Go bindings for libVLC and high-level media player interface | 7 days ago |
gst (opens new window) | 166 | Go bindings for GStreamer (retired: currently I don't use/develop this package) | 3 years ago |
go-m3u8 (opens new window) | 106 | Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8) | 7 months ago |
v4l (opens new window) | 75 | Facade to the Video4Linux video capture interface. | 2 years ago |
libgosubs (opens new window) | 23 | golang library to read and write various subtitle formats | 3 years ago |
go-mpd (opens new window) | 16 | Go library for parsing and generating MPEG-DASH Media Presentation Description (MPD) files | 3 years ago |
# Web Frameworks
# Full stack web frameworks
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gin (opens new window) | 70619 | 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. | 3 hours ago |
fiber (opens new window) | 27682 | ⚡️ Express inspired web framework written in Go | 13 hours ago |
echo (opens new window) | 26234 | High performance, minimalist Go web framework | 19 hours ago |
revel (opens new window) | 12953 | A high productivity, full-stack web framework for the Go language. | 4 months ago |
goa (opens new window) | 5251 | Design-based APIs and microservices in Go | 8 hours ago |
gizmo (opens new window) | 3726 | A Microservice Toolkit from The New York Times | a month ago |
go-json-rest (opens new window) | 3516 | A quick and easy way to setup a RESTful JSON API | 3 years ago |
macaron (opens new window) | 3404 | Package macaron is a high productive and modular web framework in Go. | a day ago |
utron (opens new window) | 2218 | A lightweight MVC framework for Go(Golang) | 5 years ago |
goyave (opens new window) | 1315 | 🍐 Elegant Golang REST API Framework (v5 preview available) | 4 days ago |
go-tigertonic (opens new window) | 997 | A Go framework for building JSON web services inspired by Dropwizard | 5 years ago |
tango (opens new window) | 834 | This is only a mirror and Moved to https://gitea.com/lunny/tango | 4 years ago |
gearbox (opens new window) | 717 | Gearbox ⚙️ is a web framework written in Go with a focus on high performance | 2 months ago |
beego (opens new window) | 648 | beego is an open-source, high-performance web framework for the Go programming language. | a year ago |
aero (opens new window) | 531 | 🚄 High-performance web server for Go. | a year ago |
gongular (opens new window) | 502 | A different approach to Go web frameworks | 3 years ago |
flamingo-commerce (opens new window) | 446 | Flexible E-Commerce Framework on top of Flamingo. Used to build E-Commerce "Portals" and connect it with the help of individual Adapters to other services. | 4 days ago |
air (opens new window) | 431 | An ideally refined web framework for Go. | 5 months ago |
rk-boot (opens new window) | 425 | Build microservice with rk-boot and let the team take over clean and tidy code. | 3 months ago |
neo (opens new window) | 418 | Go Web Framework | 9 months ago |
flamingo (opens new window) | 394 | Flamingo Framework and Core Library. Flamingo is a go based framework to build pluggable applications. Focus is on clean architecture, maintainability and operation readiness. | 3 days ago |
mango (opens new window) | 372 | Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. | 6 years ago |
gondola (opens new window) | 310 | The web framework for writing faster sites, faster | 4 years ago |
uadmin (opens new window) | 286 | The web framework for Golang | 15 hours ago |
webgo (opens new window) | 283 | A microframework to build web apps; with handler chaining, middleware support, and most of all; standard library compliant HTTP handlers(i.e. http.HandlerFunc). | 5 months ago |
ginrpc (opens new window) | 276 | gin auto binding,grpc, and annotated route,gin 注解路由, grpc,自动参数绑定工具 | 2 months ago |
golf (opens new window) | 266 | ⛳️ The Golf web framework | 2 years ago |
hiboot (opens new window) | 179 | hiboot is a high performance web and cli application framework with dependency injection support | 5 months ago |
appy (opens new window) | 129 | An opinionated productive web framework that helps scaling business easier. | 3 months ago |
go-rest (opens new window) | 127 | A small and evil REST framework for Go | 7 years ago |
patron (opens new window) | 124 | Microservice framework following best cloud practices with a focus on productivity. | a month ago |
microservice (opens new window) | 111 | This library provides a simple microservice framework based on clean architecture principles with a working example implemented. | 7 months ago |
rux (opens new window) | 94 | ⚡ Rux is an simple and fast web framework. support route group, param route binding, middleware, compatible http.Handler interface. 简单且快速的 Go api/web 框架,支持路由分组,路由参数绑定,中间件,兼容 http.Handler 接口 | 4 days ago |
vox (opens new window) | 80 | Simple and lightweight Go web framework inspired by koa | 8 months ago |
golax (opens new window) | 76 | Golax, a go implementation for the Lax framework. | 7 months ago |
yarf (opens new window) | 65 | Yet Another REST Framework | 4 years ago |
fireball (opens new window) | 59 | Go web framework with a natural feel | 5 years ago |
goa (opens new window) | 49 | Goa is a web framework based on middleware, like koa.js. | 4 years ago |
gotuna (opens new window) | 43 | GoTuna a lightweight web framework for Go with mux router, middlewares, user sessions, templates, embedded views, and static file server. | a year ago |
goweb (opens new window) | 35 | Lightweight web framework based on net/http. | a year ago |
api (opens new window) | 33 | A REST framework for quickly writing resource based services in Golang. | 9 years ago |
rex (opens new window) | 33 | Pleasures for Web in Golang | 6 years ago |
banjo (opens new window) | 21 | BANjO is a simple web framework written in Go (golang) | 6 years ago |
# Actual middlewares
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
tollbooth (opens new window) | 2451 | Simple middleware to rate-limit HTTP requests. | 8 months ago |
cors (opens new window) | 2395 | Go net/http configurable handler to handle CORS requests | 6 days ago |
limiter (opens new window) | 1813 | Dead simple rate limit middleware for Go. | 2 months ago |
go-server-timing (opens new window) | 851 | Go (golang) library for creating and consuming HTTP Server-Timing headers | a year ago |
go-fault (opens new window) | 479 | Fault injection library in Go using standard http middleware | 2 months ago |
ln-paywall (opens new window) | 136 | Go middleware for monetizing your API on a per-request basis with Bitcoin and Lightning ⚡️ | 4 years ago |
xff (opens new window) | 97 | A Golang Middleware to handle X-Forwarded-For Header | 2 years ago |
rk-grpc (opens new window) | 64 | Start gRPC microservice from YAML, plugin of rk-boot | 6 months ago |
rk-gin (opens new window) | 39 | Start gin microservice from YAML, plugin of rk-boot | 6 months ago |
formjson (opens new window) | 38 | Go net/http handler to transparently manage posted JSON | 8 years ago |
client-timing (opens new window) | 24 | An HTTP client for go-server-timing middleware. Enables automatic timing propagation through HTTP calls between servers. | 3 years ago |
mid (opens new window) | 7 | Middleware for HTTP services in Go | a year ago |
# Libraries for creating HTTP middlewares
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
negroni (opens new window) | 7343 | Idiomatic HTTP Middleware for Golang | 5 months ago |
alice (opens new window) | 2832 | Painless middleware chaining for Go | a year ago |
render (opens new window) | 1816 | Go package for easily rendering JSON, XML, binary data, and HTML templates responses. | 5 months ago |
stats (opens new window) | 593 | A Go middleware that stores various information about your web application (response time, status code count, etc.) | 8 months ago |
interpose (opens new window) | 294 | Minimalist net/http middleware for golang | 7 years ago |
renderer (opens new window) | 255 | Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go | 3 years ago |
muxchain (opens new window) | 208 | Lightweight Middleware for net/http | 4 years ago |
rye (opens new window) | 102 | A tiny http middleware for Golang with added handlers for common needs. | 3 months ago |
gores (opens new window) | 100 | Go package that handles HTML, JSON, XML and etc. responses | 3 years ago |
mediary (opens new window) | 87 | Add interceptors to GO http.Client | 3 years ago |
chain (opens new window) | 64 | Composable chains of nested http.Handler instances. | 5 years ago |
catena (opens new window) | 9 | gRPC interceptor catenation. | 5 years ago |
# Routers
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
mux (opens new window) | 18912 | Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍 | 6 days ago |
httprouter (opens new window) | 15595 | A high performance HTTP request router that scales well | 3 months ago |
chi (opens new window) | 14920 | lightweight, idiomatic and composable router for building Go HTTP services | 20 days ago |
web (opens new window) | 1501 | Go Router + Middleware. Your Contexts. | 3 years ago |
bone (opens new window) | 1294 | Lightning Fast HTTP Multiplexer | 4 years ago |
goji (opens new window) | 944 | Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang) | a year ago |
fasthttprouter (opens new window) | 875 | A high performance fasthttp request router that scales well | 4 years ago |
httptreemux (opens new window) | 602 | High-speed, flexible tree-based HTTP router for Go. | 6 months ago |
gorouter (opens new window) | 532 | xujiajun/gorouter is a simple and fast HTTP router for Go. It is easy to build RESTful APIs and your web framework. | 4 years ago |
ozzo-routing (opens new window) | 447 | An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs. | a year ago |
lars (opens new window) | 390 | 🚨 Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. | 4 years ago |
siesta (opens new window) | 351 | Composable framework for writing HTTP handlers in Go. | 2 years ago |
vestigo (opens new window) | 269 | Echo Inspired Stand Alone URL Router | 3 years ago |
router (opens new window) | 166 | ⚡️ A lightning fast HTTP router | 3 years ago |
gorouter (opens new window) | 149 | Go Server/API micro framework, HTTP request router, multiplexer, mux | 7 months ago |
pure (opens new window) | 140 | 🚱 Is a lightweight HTTP router that sticks to the std "net/http" implementation | a month ago |
alien (opens new window) | 127 | A lightweight and fast http router from outer space | 9 months ago |
violetear (opens new window) | 106 | Go HTTP router | 10 months ago |
Bxog (opens new window) | 104 | Bxog is a simple and fast HTTP router for Go (HTTP request multiplexer). | a year ago |
xmux (opens new window) | 97 | xmux is a httprouter fork on top of xhandler (net/context aware) | 6 years ago |
ngamux (opens new window) | 59 | Simple HTTP router for Go | 4 months ago |
bellt (opens new window) | 54 | 🔔 A simple Go router | a year ago |
fastrouter (opens new window) | 22 | FastRouter is a fast, flexible HTTP router written in Go. | 6 years ago |
route (opens new window) | 8 | Go Route - Simple yet powerful HTTP request multiplexer | 4 years ago |
# WebAssembly
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
tinygo (opens new window) | 13270 | Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM. | 20 hours ago |
dom (opens new window) | 479 | DOM library for Go and WASM | 4 years ago |
go-canvas (opens new window) | 212 | Library to use HTML5 Canvas from Go-WASM, with all drawing within go code | 3 years ago |
wasmbrowsertest (opens new window) | 149 | Run WASM tests inside your browser | 18 days ago |
webapi (opens new window) | 142 | Go Lang Web Assembly bindings for DOM, HTML etc | 8 months ago |
vert (opens new window) | 89 | WebAssembly interop between Go and JS values. | 8 months ago |
# Windows
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-ole (opens new window) | 1007 | win32 ole implementation for golang | 4 days ago |
d3d9 (opens new window) | 146 | Direct3D9 wrapper for Go. | 4 months ago |
gosddl (opens new window) | 10 | GoSDDL converter | 4 years ago |
# XML
- Libraries and tools for manipulating XML.
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
zek (opens new window) | 680 | Generate a Go struct from XML. | 6 days ago |
xpath (opens new window) | 593 | XPath package for Golang, supports HTML, XML, JSON document query. | 3 months ago |
xquery (opens new window) | 156 | Extract data or evaluate value from HTML/XML documents using XPath | 5 years ago |
xml2map (opens new window) | 52 | XML to MAP converter written Golang | 2 years ago |
xmlwriter (opens new window) | 24 | xmlwriter is a pure-Go library providing procedural XML generation based on libxml2's xmlwriter module | 2 months ago |
XML-Comp (opens new window) | 20 | Compare ANY markup documents. | 5 years ago |
# Tools
- Go software and plugins.
# Code Analysis
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-tools (opens new window) | 5499 | Staticcheck - The advanced Go linter | 13 hours ago |
go-tools (opens new window) | 5499 | Staticcheck - The advanced Go linter | 13 hours ago |
lint (opens new window) | 3974 | [mirror] This is a linter for Go source code. (deprecated) | 2 years ago |
errcheck (opens new window) | 2107 | errcheck checks that you checked errors. | 2 months ago |
go-critic (opens new window) | 1651 | The most opinionated Go source code linter for code audit. | 15 minutes ago |
goplantuml (opens new window) | 1484 | PlantUML Class Diagram Generator for golang projects | 20 days ago |
gcvis (opens new window) | 1085 | Visualise Go program GC trace data in real time | 4 years ago |
php-parser (opens new window) | 929 | PHP parser written in Go | 2 years ago |
go-cleanarch (opens new window) | 752 | Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects. | 2 years ago |
goast-viewer (opens new window) | 719 | Golang AST visualizer | 10 days ago |
golines (opens new window) | 659 | A golang formatter that fixes long lines | 2 months ago |
go-mod-outdated (opens new window) | 640 | Find outdated dependencies of your Go projects. go-mod-outdated provides a table view of the go list -u -m -json all command which lists all dependencies of a Go project and their available minor and patch updates. It also provides a way to filter indirect dependencies and dependencies without updates. | 6 months ago |
goreturns (opens new window) | 519 | A gofmt/goimports-like tool for Go programmers that fills in Go return statements with zero values to match the func return types | 3 years ago |
todocheck (opens new window) | 398 | A static code analyser for annotated TODO comments | 7 months ago |
unconvert (opens new window) | 359 | Remove unnecessary type conversions from Go source | 6 months ago |
dupl (opens new window) | 316 | a tool for code clone detection | 3 years ago |
tickgit (opens new window) | 307 | Manage your repository's TODOs, tickets and checklists as config in your codebase. | 5 months ago |
gostatus (opens new window) | 243 | A command line tool that shows the status of Go repositories. | a month ago |
apicompat (opens new window) | 178 | apicompat checks recent changes to a Go project for backwards incompatible changes | 7 years ago |
checkstyle (opens new window) | 128 | checkstyle for go | 2 years ago |
lint (opens new window) | 67 | Run linters from Go code - | 5 years ago |
validate (opens new window) | 61 | A Go package to automatically validate fields with tags | 10 months ago |
go-outdated (opens new window) | 45 | Find outdated golang packages | 5 years ago |
blanket (opens new window) | 17 | MOVED TO GITLAB | 5 years ago |
golang-ifood-sdk (opens new window) | 10 | Golang Ifood API SDK | a year ago |
# Editor Plugins
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
vim-go (opens new window) | 15529 | Go development plugin for Vim | 4 days ago |
tools (opens new window) | 6936 | [mirror] Go Tools | 13 hours ago |
gocode (opens new window) | 5004 | An autocompletion daemon for the Go programming language | 5 months ago |
vscode-go (opens new window) | 3495 | Go extension for Visual Studio Code | 3 days ago |
GoSublime (opens new window) | 3423 | A Golang plugin collection for SublimeText 3, providing code completion and other IDE-like features. | 3 years ago |
go-plus (opens new window) | 1509 | An Enhanced Go Experience For The Atom Editor | 2 years ago |
go-mode.el (opens new window) | 1331 | Emacs mode for the Go programming language | 15 days ago |
coc-go (opens new window) | 543 | Go language server extension using gopls for coc.nvim. | 8 hours ago |
goimports-reviser (opens new window) | 389 | Right imports sorting & code formatting tool (goimports alternative) | 4 days ago |
Watch (opens new window) | 200 | Watches for changes in a directory tree and reruns a command in an acme win or just on the terminal. | 5 months ago |
vim-compiler-go (opens new window) | 87 | Vim compiler plugin for Go (golang) | 7 years ago |
go-language-server (opens new window) | 31 | A Go language server. | 4 years ago |
gounit-vim (opens new window) | 23 | Vim plugin for https://github.com/hexdigest/gounit | 5 years ago |
theia-go-extension (opens new window) | 15 | Theia Go Extension | 4 years ago |
vscode-go-doc (opens new window) | 7 | An Microsoft Visual Code extension for Golang to print symbol definition to output | 7 months ago |
# Go Generate Tools
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gotests (opens new window) | 4645 | Automatically generate Go test boilerplate from your source code. | 6 days ago |
genny (opens new window) | 1679 | Elegant generics for Go | 2 years ago |
xgen (opens new window) | 261 | XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator | a month ago |
re2dfa (opens new window) | 193 | Transform regular expressions into finite state machines and output Go source code. This repository has migrated to https://gitlab.com/opennota/re2dfa | 5 years ago |
hasgo (opens new window) | 129 | Haskell-flavoured functions for Go 😃 | 2 years ago |
gonerics (opens new window) | 114 | Generics for go | 9 years ago |
gocontracts (opens new window) | 98 | A tool for design-by-contract in Go | 5 years ago |
gounit (opens new window) | 72 | Unit tests generator for Go programming language | 5 years ago |
generic (opens new window) | 48 | flexible data type for Go | 3 years ago |
godal (opens new window) | 17 | godal provides the ability to generate specific golang code. The godal is to enable developers to write fast code in an expressive way. | 2 years ago |
# Go Tools
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-swagger (opens new window) | 8793 | Swagger 2.0 implementation for go | 15 days ago |
go-callvis (opens new window) | 5338 | Visualize call graph of a Go program using Graphviz | 3 months ago |
OctoLinker (opens new window) | 5165 | OctoLinker — Links together, what belongs together | 20 hours ago |
depth (opens new window) | 845 | Visualize Go Dependency Trees | 2 years ago |
richgo (opens new window) | 802 | Enrich go test outputs with text decorations. | 4 days ago |
rts (opens new window) | 245 | RTS: request to struct. Generates Go structs from JSON server responses. | 9 months ago |
godbg (opens new window) | 196 | Go implementation of the Rust dbg macro | 4 years ago |
typex (opens new window) | 180 | [TOOL, CLI] - Filter and examine Go type structures, interfaces and their transitive dependencies and relationships. Export structural types as TypeScript value object or bare type representations. | 7 months ago |
roumon (opens new window) | 146 | Universal goroutine monitor using pprof and termui | 6 months ago |
gothanks (opens new window) | 118 | GoThanks automatically stars Go's official repository and your go.mod github dependencies, providing a simple way to say thanks to the maintainers of the modules you use and the contributors of Go itself. | 6 months ago |
colorgo (opens new window) | 112 | Colorize (highlight) go build command output | 3 years ago |
go-james (opens new window) | 59 | James is your butler and helps you to create, build, debug, test and run your Go projects | 3 months ago |
igo (opens new window) | 59 | Improved Go Syntax (transpiler) | 3 years ago |
go-pkg-complete (opens new window) | 42 | bash completion for go and wgo | 6 years ago |
gomodrun (opens new window) | 26 | The forgotten go tool that executes and caches binaries included in go.mod files. | 7 months ago |
docs (opens new window) | 23 | Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard | 3 months ago |
modver (opens new window) | 8 | a month ago |
# DevOps Tools
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
kubernetes (opens new window) | 100696 | Production-Grade Container Scheduling and Management | 34 minutes ago |
moby (opens new window) | 66408 | Moby Project - a collaborative project for the container ecosystem to assemble container-based systems | 9 minutes ago |
traefik (opens new window) | 44110 | The Cloud Native Application Proxy | 18 minutes ago |
gitea (opens new window) | 37818 | Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD | 24 minutes ago |
vegeta (opens new window) | 21641 | HTTP load testing tool and library. It's over 9000! | 15 hours ago |
hey (opens new window) | 16044 | HTTP load generator, ApacheBench (ab) replacement | 20 days ago |
packer (opens new window) | 14564 | Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. | 7 hours ago |
webhook (opens new window) | 9174 | webhook is a lightweight incoming webhook server to run shell commands | 7 days ago |
gvm (opens new window) | 8673 | Go Version Manager | 3 hours ago |
ddosify (opens new window) | 7662 | Comprehensive Performance Testing Platform. Available on CLI, Self-Hosted, and Cloud - https://ddosify.com 🚀 | 8 days ago |
gaia (opens new window) | 5095 | Build powerful pipelines in any programming language. | 5 months ago |
gox (opens new window) | 4557 | A dead simple, no frills Go cross compile tool | 3 months ago |
bombardier (opens new window) | 4472 | Fast cross-platform HTTP benchmarking tool written in Go | 2 months ago |
script (opens new window) | 4245 | Making it easy to write shell-like scripts in Go | 17 days ago |
pomerium (opens new window) | 3622 | Pomerium is an identity and context-aware access proxy. | 6 hours ago |
bosun (opens new window) | 3360 | Time Series Alerting Framework | a month ago |
kala (opens new window) | 2018 | Modern Job Scheduler | 2 months ago |
s5cmd (opens new window) | 1815 | Parallel S3 and local filesystem execution tool. | an hour ago |
fac (opens new window) | 1811 | Easy-to-use CUI for fixing git conflicts | a year ago |
goxc (opens new window) | 1681 | a build tool for Go, with a focus on cross-compiling, packaging and deployment | 4 years ago |
statusok (opens new window) | 1584 | 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. | 2 years ago |
ghorg (opens new window) | 1315 | Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more 🥚 | 7 days ago |
go-selfupdate (opens new window) | 1247 | Enable your Go applications to self update | 25 days ago |
s3gof3r (opens new window) | 1139 | Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI. http://godoc.org/github.com/rlmcpherson/s3gof3r | 2 years ago |
utask (opens new window) | 948 | µTask is an automation engine that models and executes business processes declared in yaml. ✏️📋 | 18 hours ago |
skm (opens new window) | 885 | A simple and powerful SSH keys manager | 3 months ago |
scaleway-cli (opens new window) | 839 | Command Line Interface for Scaleway | 17 hours ago |
cassowary (opens new window) | 677 | 🚀 Modern cross-platform HTTP load-testing tool written in Go | 3 months ago |
kool (opens new window) | 629 | From local development to the cloud: development workflow made easy. | 3 days ago |
aurora (opens new window) | 580 | Cross-platform beanstalkd queue server admin console. | 2 years ago |
govvv (opens new window) | 535 | "go build" wrapper to add version info to Golang applications | 4 months ago |
pewpew (opens new window) | 384 | Flexible HTTP command line stress tester for websites and web services | a year ago |
jenkins-cli (opens new window) | 365 | Jenkins CLI allows you to manage your Jenkins in an easy way. Jenkins 命令行客户端 | 5 months ago |
gonative (opens new window) | 334 | Build Go Toolchains /w native libs for cross-compilation | 7 years ago |
trubka (opens new window) | 330 | A CLI tool for Kafka | 5 months ago |
mora (opens new window) | 312 | MongoDB generic REST server in Go | 9 months ago |
lstags (opens new window) | 307 | Explore Docker registries and manipulate Docker images! | 3 months ago |
balerter (opens new window) | 289 | Script Based Alerting Manager | 5 months ago |
easyssh-proxy (opens new window) | 287 | easyssh-proxy provides a simple implementation of some SSH protocol features in Go | a month ago |
manssh (opens new window) | 285 | Manage your ssh alias configs easily. | a year ago |
dogo (opens new window) | 257 | Monitoring changes in the source file and automatically compile and run (restart). | 4 years ago |
terraform-provider-openapi (opens new window) | 253 | OpenAPI Terraform Provider that configures itself at runtime with the resources exposed by the service provider (defined in a swagger file) | 4 months ago |
godbg (opens new window) | 227 | Web-based gdb front-end application | 5 years ago |
blast (opens new window) | 211 | Blast is a simple tool for API load testing and batch jobs | 5 years ago |
s3-proxy (opens new window) | 204 | S3 Reverse Proxy with GET, PUT and DELETE methods and authentication (OpenID Connect and Basic Auth) | 2 days ago |
abbreviate (opens new window) | 203 | Supporting your devops by shortening your strings using common abbreviations and clever guesswork | 6 months ago |
kcli (opens new window) | 196 | A kafka command line browser | 4 years ago |
gobrew (opens new window) | 194 | Shell script to download and set GO environmental paths to allow multiple versions. | 3 years ago |
ostent (opens new window) | 177 | Ostent is a server tool to collect, display and report system metrics. | 8 months ago |
grapes (opens new window) | 163 | easy way to distribute commands over ssh. | a month ago |
dockerfile-generator (opens new window) | 155 | dfg - Generates dockerfiles based on various input channels. | a year ago |
winrm-cli (opens new window) | 154 | Command-line tool to remotely execute commands on Windows machines through WinRM | 2 years ago |
drone-scp (opens new window) | 123 | Copy files and artifacts via SSH using a binary, docker or Drone CI. | 2 months ago |
go-furnace (opens new window) | 97 | Go Hosting Solution for AWS, Google Cloud and Digital Ocean | 2 years ago |
dropship (opens new window) | 64 | Super simple deployment tool | 5 years ago |
docker-go-mingw (opens new window) | 37 | Docker image for building Go binaries with MinGW toolchain | 14 days ago |
drone-jenkins (opens new window) | 37 | Drone plugin for trigger Jenkins jobs. | a year ago |
rodent (opens new window) | 34 | Manage Go Versions/Projects/Dependencies | 6 years ago |
awsenv (opens new window) | 33 | AWS environment config loader | 5 years ago |
httpref (opens new window) | 31 | Command line, offline, access to HTTP status code, common header, and port references | a month ago |
lwc (opens new window) | 30 | A live-updating version of the UNIX wc command. | a year ago |
depcharge (opens new window) | 23 | DepCharge is a tool designed to help orchestrate the execution of commands across many directories at once. | 2 years ago |
aptly-fork (opens new window) | 9 | aptly - Debian repository management tool (fork of aptly-dev/aptly) | 4 years ago |
sg (opens new window) | 8 | Stress gauge allows one to gauge response times of an HTTP service under stress. | 7 years ago |
# Other Software
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
croc (opens new window) | 23253 | Easily and securely send things from one computer to another 🐊 📦 | a month ago |
restic (opens new window) | 20874 | Fast, secure, efficient backup program | 3 hours ago |
seaweedfs (opens new window) | 18003 | SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. | 15 hours ago |
goreplay (opens new window) | 17696 | 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. | 19 hours ago |
comcast (opens new window) | 10000 | Simulating shitty network connections so you can build better systems. | a month ago |
toxiproxy (opens new window) | 9261 | ⏰ 🔥 A TCP proxy to simulate network and system conditions for chaos and resiliency testing | 3 days ago |
confd (opens new window) | 8141 | Manage local application configuration files using templates and data from etcd or consul | 21 hours ago |
liteide (opens new window) | 7264 | LiteIDE is a simple, open source, cross-platform Go IDE. | a month ago |
drive (opens new window) | 6559 | Google Drive client for the commandline | 7 months ago |
nes (opens new window) | 5264 | NES emulator written in Go. | 5 days ago |
scc (opens new window) | 4924 | Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go | 4 days ago |
duplicacy (opens new window) | 4720 | A new generation cloud backup tool | a month ago |
blocky (opens new window) | 2777 | Fast and lightweight DNS proxy as ad-blocker for local network with many features | 4 hours ago |
mylg (opens new window) | 2660 | Network Diagnostic Tool | 3 years ago |
goboy (opens new window) | 2524 | Multi-platform Nintendo Game Boy Color emulator written in Go | 5 months ago |
sup (opens new window) | 2430 | Super simple deployment tool - think of it like 'make' for a network of servers | 5 months ago |
lgo (opens new window) | 2316 | Interactive Go programming with Jupyter | 3 years ago |
circuit (opens new window) | 1970 | Circuit: Dynamic cloud orchestration http://gocircuit.org | 3 years ago |
community (opens new window) | 1906 | Modern Confluence alternative designed for internal & external docs, built with Go + EmberJS | 15 days ago |
snap (opens new window) | 1797 | The open telemetry framework | 9 months ago |
borg (opens new window) | 1580 | Search and save shell snippets without leaving your terminal | 6 years ago |
shell2http (opens new window) | 1144 | Executing shell commands via HTTP server | 4 months ago |
vflow (opens new window) | 1001 | Enterprise Network Flow Collector (IPFIX, sFlow, Netflow) | 3 months ago |
peg (opens new window) | 920 | Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. | 5 months ago |
Go-Package-Store (opens new window) | 895 | An app that displays updates for the Go packages in your GOPATH. | a month ago |
leaps (opens new window) | 736 | A pair programming service using operational transforms | 5 months ago |
gfile (opens new window) | 705 | Direct file transfer over WebRTC | 5 months ago |
guora (opens new window) | 654 | 🖖🏻 A self-hosted Quora like web application written in Go 基于 Golang 类似知乎的私有部署问答应用 包含问答、评论、点赞、管理后台等功能 | 6 months ago |
gebug (opens new window) | 622 | Debug Dockerized Go applications better | 5 days ago |
gocc (opens new window) | 579 | Parser / Scanner Generator | 5 months ago |
mockingjay-server (opens new window) | 543 | Fake server, Consumer Driven Contracts and help with testing performance from one configuration file with zero system dependencies and no coding whatsoever | a year ago |
go-peerflix (opens new window) | 455 | Go Peerflix | 5 months ago |
woke (opens new window) | 388 | Detect non-inclusive language in your source code. | 20 days ago |
ipe (opens new window) | 367 | An open source Pusher server implementation compatible with Pusher client libraries written in GO | 2 years ago |
IDE (opens new window) | 354 | A Go code editor. With debugging and Autocomplete. 一个 Go 代码编辑器,具有 DEBUGGING 和 AUTOCOMPLETE | 8 months ago |
tcpprobe (opens new window) | 338 | Modern TCP tool and service for network performance observability. | 2 years ago |
wellington (opens new window) | 303 | Spriting that sass has been missing | 5 months ago |
cherry (opens new window) | 289 | A tiny webchat server in Go. | 6 years ago |
tcpdog (opens new window) | 235 | eBPF based TCP observability. | 2 years ago |
joincap (opens new window) | 193 | Merge multiple pcap files together, gracefully. | 2 years ago |
orbit (opens new window) | 177 | 📡 A cross-platform task runner for executing commands and generating files from templates | 3 years ago |
vaku (opens new window) | 150 | Vaku extends the Vault API & CLI | 15 hours ago |
dp (opens new window) | 84 | Scry Data Protocol | 7 months ago |
boxed (opens new window) | 78 | dropbox based blog engine, written in go. | 5 years ago |
term-quiz (opens new window) | 24 | Terminal Quiz Application Written in Go | 5 years ago |
naclpipe (opens new window) | 23 | NaCL pipe | 5 years ago |
snitch (opens new window) | 16 | Keep updated about all deploys on Tsuru | 5 years ago |
GoDocTooltip (opens new window) | 13 | 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 | 8 months ago |
hoofli (opens new window) | 6 | Generate PlantUML diagrams from Chrome or Firefox network inspections | 8 months ago |
# Resources
- Where to discover new Go libraries.
# Benchmarks
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go-web-framework-benchmark (opens new window) | 1905 | ⚡️ Go web framework benchmark | 3 months ago |
go-http-routing-benchmark (opens new window) | 1615 | Go HTTP request router and web framework benchmark | 10 months ago |
go_serialization_benchmarks (opens new window) | 1470 | Benchmarks of Go serialization methods | 3 months ago |
skynet (opens new window) | 1026 | Skynet 1M threads microbenchmark | a year ago |
speedtest-resize (opens new window) | 236 | Compare various Image resize algorithms for the Go language | 3 years ago |
go-benchmarks (opens new window) | 146 | A few miscellaneous Go microbenchmarks. | 7 years ago |
gospeed (opens new window) | 111 | Go micro-benchmarks for calculating the speed of language constructs | a year ago |
autobench (opens new window) | 96 | Go benchmark harness. | 9 years ago |
golang-sql-benchmark (opens new window) | 65 | A benchmarking shootout of various db/SQL utilities for Go | a year ago |
gocostmodel (opens new window) | 60 | Benchmarks of common basic operations for the Go language. | 2 years ago |
go-ml-benchmarks (opens new window) | 28 | ⏱ Benchmarks of machine learning inference for Go | a month ago |
go-benchmark-app (opens new window) | 26 | Application for HTTP benchmarking via different rules and configs | 6 years ago |
kvbench (opens new window) | 25 | Key/Value database benchmark | 4 years ago |
go-json-benchmark (opens new window) | 8 | Benchmark of Golang JSON Libraries | 3 years ago |
# E-Books
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
GoBooks (opens new window) | 14542 | List of Golang books | a month ago |
The-Golang-Standard-Library-by-Example (opens new window) | 9291 | Golang标准库。对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案。以示例驱动的方式讲解Golang的标准库。 | 3 months ago |
web-dev-golang-anti-textbook (opens new window) | 3123 | Learn how to write webapps without a framework in Go. | 2 years ago |
gosuccinctly (opens new window) | 23 | This is the companion repo for Go Succinctly by Amir Irani. | 5 years ago |
# Gophers
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
gophers (opens new window) | 3203 | Free gophers | a year ago |
free-gophers-pack (opens new window) | 3028 | ✨ This pack of 100+ gopher pictures and elements will help you to build own design of almost anything related to Go Programming Language: presentations, posts in blogs or social media, courses, videos and many, many more. | 8 months ago |
gophers (opens new window) | 2834 | Gopher Artwork by Ashley McNamara | 4 years ago |
gopherize.me (opens new window) | 651 | Gopherize.me app | 2 years ago |
gophericons (opens new window) | 611 | 34 gopher images for Go developers community | 5 years ago |
gopher-stickers (opens new window) | 562 | gopher stickers | 4 years ago |
go-gopher (opens new window) | 120 | The Go Gopher Amigurumi Pattern | 3 months ago |
gopher-logos (opens new window) | 114 | adorable gopher logos | 2 years ago |
Go-gopher-Vector (opens new window) | 65 | Go gopher Vector Data [.ai, .svg] | 5 years ago |
gophers (opens new window) | 58 | random gopher graphics | 3 years ago |
gophers (opens new window) | 24 | Gopher artwork (Golang mascot) | 23 days ago |
# Style Guides
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
cockroach (opens new window) | 27558 | CockroachDB - the open source, cloud-native distributed SQL database. | 6 minutes ago |
fabric (opens new window) | 14738 | Hyperledger Fabric is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy. | a day ago |
guide (opens new window) | 14113 | The Uber Go Style Guide. | 13 days ago |
magnetico (opens new window) | 2955 | Autonomous (self-hosted) BitTorrent DHT search engine suite. | 2 years ago |
go-styleguide (opens new window) | 1446 | 🏆 Opinionated Styleguide for the Go language | 7 months ago |
# Websites
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
go (opens new window) | 113389 | The Go programming language | 3 hours ago |
awesome-awesomeness (opens new window) | 30453 | A curated list of awesome awesomeness | a month ago |
awesome-remote-job (opens new window) | 26170 | A curated list of awesome remote jobs and resources. Inspired by https://github.com/vinta/awesome-python | 3 days ago |
awesome-golang-workshops (opens new window) | 486 | A curated list of awesome golang workshops. | 2 years ago |
golang-graphics (opens new window) | 138 | Community-contributed Go graphics files | 8 years ago |
gocryforhelp (opens new window) | 41 | List of opensource projects looking for help | 6 years ago |
awesome-go-extra (opens new window) | 21 | Parse awesome-go README file and generate a new README file with repo info. | a year ago |
# Tutorials
Repository | StarCount | Description | RecentlyUpdated |
---|---|---|---|
build-web-application-with-golang (opens new window) | 42223 | A golang ebook intro how to build a web with golang | 4 months ago |
go-patterns (opens new window) | 22594 | Curated list of Go design patterns, recipes and idioms | 3 months ago |
learn-go-with-tests (opens new window) | 19903 | Learn Go with test-driven development | 7 days ago |
learngo (opens new window) | 17566 | ❤️ 1000+ Hand-Crafted Go Examples, Exercises, and Quizzes. 🚀 Learn Go by fixing 1000+ tiny programs. | 2 months ago |
golang-cheat-sheet (opens new window) | 7712 | An overview of Go syntax and features. | 8 months ago |
go-clean-template (opens new window) | 5336 | Clean Architecture template for Golang services | 2 months ago |
golang-for-nodejs-developers (opens new window) | 3969 | Examples of Golang compared to Node.js for learning 🤓 | 6 months ago |
ethereum-development-with-go-book (opens new window) | 1615 | 📖 A little guide book on Ethereum Development with Go (golang) | 9 months ago |
working-with-go (opens new window) | 1158 | A set of example golang code to start learning Go | 4 years ago |
goapp (opens new window) | 640 | An opinionated guideline to structure & develop a Go web application/service | 6 months ago |
design-patterns (opens new window) | 105 | common creational, behavioural and structural patterns implemented in go 🤩 | 5 months ago |
go-patterns (opens new window) | 11 | 2 years ago |