Utilities - Awesome Go
General utilities and tools to make your life easier.
- apm - Process manager for Golang applications with an HTTP API.
- backscanner - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward.
- bed - A Vim-like binary editor written in Go.
- blank - Verify or remove blanks and whitespace from strings.
- bleep - Perform any number of actions on any set of OS signals in Go.
- boilr - Blazingly fast CLI tool for creating projects from boilerplate templates.
- changie - Automated changelog tool for preparing releases with lots of customization options.
- chyle - Changelog generator using a git repository with multiple configuration possibilities.
- circuit - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern.
- circuitbreaker - Circuit Breakers in Go.
- clipboard - đź“‹ cross-platform clipboard package in Go.
- clockwork - A simple fake clock for golang.
- cmd - Library for executing shell commands on osx, windows and linux.
- command - Command pattern for Go with thread safe serial and parallel dispatcher.
- config-file-validator - Cross Platform tool to validate configuration files.
- contextplus - Package contextplus provide more easy to use functions for contexts.
- cookie - Cookie struct parsing and helper package.
- copy-pasta - Universal multi-workstation clipboard that uses S3 like backend for the storage.
- countries - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards.
- countries - All you need when you are working with countries in Go.
- create-go-app - A powerful CLI for create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) & deploy automation (Ansible, Docker) by running one command.
- cryptgo - Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time!
- ctop - Top-like interface (e.g. htop) for container metrics.
- ctxutil - A collection of utility functions for contexts.
- cvt - Easy and safe convert any value to another type.
- dbt - A framework for running self-updating signed binaries from a central, trusted repository.
- Death - Managing go application shutdown with signals.
- delve - Go debugger.
- dive - A tool for exploring each layer in a Docker image.
- dlog - Compile-time controlled logger to make your release smaller without removing debug calls.
- EaseProbe - A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification.
- equalizer - Quota manager and rate limiter collection for Go.
- ergo - The management of multiple local services running over different ports made easy.
- evaluator - Evaluate an expression dynamically based on s-expression. It's simple and easy to extend.
- Failsafe-go - Fault tolerance and resilience patterns for Go.
- filetype - Small package to infer the file type checking the magic numbers signature.
- filler - small utility to fill structs using "fill" tag.
- filter - provide filtering, sanitizing, and conversion of Go data.
- fzf - Command-line fuzzy finder written in Go.
- generate - runs go generate recursively on a specified path or environment variable and can filter by regex.
- ghokin - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...).
- git-time-metric - Simple, seamless, lightweight time tracking for Git.
- gitbatch - manage your git repositories in one place.
- gitcs - Git Commits Visualizer, CLI tool to visualize your Git commits on your local machine.
- go-actuator - Production ready features for Go based web frameworks.
- go-astitodo - Parse TODOs in your GO code.
- go-bind-plugin - go:generate tool for wrapping symbols exported by golang plugins (1.8 only).
- go-bsdiff - Pure Go bsdiff and bspatch libraries and CLI tools.
- go-clip - A minimalistic clipboard manager for Mac.
- go-convert - Package go-convert enables you to convert a value into another type.
- go-countries - Lightweight lookup over ISO-3166 codes.
- go-dry - DRY (don't repeat yourself) package for Go.
- go-events - A go event and event'subscribe package, like wordpress hook functions.
- go-funk - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...).
- go-health - Health package simplifies the way you add health check to your services.
- go-httpheader - Go library for encoding structs into Header fields.
- go-lambda-cleanup - A CLI for removing unused or previous versions of AWS Lambdas.
- go-lock - go-lock is a lock library implementing read-write mutex and read-write trylock without starvation.
- go-pattern-match - A Pattern matching library inspired by ts-pattern.
- go-pkg - A go toolkit.
- go-problemdetails - Go package for working with Problem Details.
- go-qr - A native, high-quality and minimalistic QR code generator.
- go-rate - Timed rate limiter for Go.
- go-sitemap-generator - XML Sitemap generator written in Go.
- go-trigger - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project.
- go-tripper - Tripper is a circuit breaker package for Go that allows you to circuit and control the status of circuits.
- go-type - Library providing Go types for store/validation and transfer of ISO-4217, ISO-3166, and other types.
- goback - Go simple exponential backoff package.
- goctx - Get your context value with high performance.
- godaemon - Utility to write daemons.
- godropbox - Common libraries for writing Go services/applications from Dropbox.
- gofn - High performance utility functions written using Generics for Go 1.18+.
- gohper - Various tools/modules help for development.
- golarm - Fire alarms with system events.
- golog - Easy and lightweight CLI tool to time track your tasks.
- gopencils - Small and simple package to easily consume REST APIs.
- goplaceholder - a small golang lib to generate placeholder images.
- goreadability - Webpage summary extractor using Facebook Open Graph and arc90's readability.
- goreleaser - Deliver Go binaries as fast and easily as possible.
- goreporter - Golang tool that does static analysis, unit testing, code review and generate code quality report.
- goseaweedfs - SeaweedFS client library with almost full features.
- gostrutils - Collections of string manipulation and conversion functions.
- gotenv - Load environment variables from .env or any io.Reader in Go.
- goval - Evaluate arbitrary expressions in Go.
- graterm - Provides primitives to perform ordered (sequential/concurrent) GRAceful TERMination (aka shutdown) in Go application.
- grofer - A system and resource monitoring tool written in Golang!
- gubrak - Golang utility library with syntactic sugar. It's like lodash, but for golang.
- handy - Many utilities and helpers like string handlers/formatters and validators.
- hostctl - A CLI tool to manage /etc/hosts with easy commands.
- htcat - Parallel and Pipelined HTTP GET Utility.
- hub - wrap git commands with additional functionality to interact with github from the terminal.
- hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.
- immortal - *nix cross-platform (OS agnostic) supervisor.
- intrinsic - Use x86 SIMD without writing any assembly code.
- jsend - JSend's implementation written in Go.
- json-log-viewer - Interactive viewer for JSON logs.
- jump - Jump helps you navigate faster by learning your habits.
- just - Just a collection of useful functions for working with generic data structures.
- koazee - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays.
- lancet - A comprehensive, efficient, and reusable util function library of go.
- lets-go - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities.
- limiters - Rate limiters for distributed applications in Golang with configurable back-ends and distributed locks.
- lo - A Lodash like Go library based on Go 1.18+ Generics (map, filter, contains, find...)
- loncha - A high-performance slice Utilities.
- lrserver - LiveReload server for Go.
- mani - CLI tool to help you manage multiple repositories.
- mc - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems.
- mergo - Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.
- mimemagic - Pure Go ultra performant MIME sniffing library/utility.
- mimesniffer - A MIME type sniffer for Go.
- mimetype - Package for MIME type detection based on magic numbers.
- minify - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats.
- minquery - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off).
- moldova - Utility for generating random data based on an input template.
- mole - cli app to easily create ssh tunnels.
- mongo-go-pagination - Mongodb Pagination for official mongodb/mongo-go-driver package which supports both normal queries and Aggregation pipelines.
- mssqlx - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind.
- multitick - Multiplexor for aligned tickers.
- myhttp - Simple API to make HTTP GET requests with timeout support.
- netbug - Easy remote profiling of your services.
- nfdump - Read nfdump netflow files.
- nostromo - CLI for building powerful aliases.
- okrun - go run error steamroller.
- olaf - Twitter Snowflake implemented in Go.
- onecache - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc).
- panicparse - Groups similar goroutines and colorizes stack dump.
- pattern-match - Pattern matching library.
- peco - Simplistic interactive filtering tool.
- pgo - Convenient functions for PHP community.
- pm - Process (i.e. goroutine) manager with an HTTP API.
- pointer - Package pointer contains helper routines for simplifying the creation of optional fields of basic type.
- ptr - Package that provide functions for simplified creation of pointers from constants of basic types.
- rclient - Readable, flexible, simple-to-use client for REST APIs.
- remote-touchpad - Control mouse and keyboard from a smartphone.
- repeat - Go implementation of different backoff strategies useful for retrying operations and heartbeating.
- request - Go HTTP Requests for Humans™.
- rerun - Recompiling and rerunning go apps when source changes.
- rest-go - A package that provide many helpful methods for working with rest api.
- retry - The most advanced functional mechanism to perform actions repetitively until successful.
- retry - A simple but highly configurable retry package for Go.
- retry - Simple and easy retry mechanism package for Go.
- retry - A pretty simple library to ensure your work to be done.
- retry-go - Simple library for retry mechanism.
- retry-go - Retrying made simple and easy for golang.
- robustly - Runs functions resiliently, catching and restarting panics.
- rospo - Simple and reliable ssh tunnels with embedded ssh server in Golang.
- scan - Scan golang sql.Rows directly to structs, slices, or primitive types.
- scan - Scan sql rows into any type powered by generics.
- scany - Library for scanning data from a database into Go structs and more.
- serve - A static http server anywhere you need.
- sesh - Sesh is a CLI that helps you create and manage tmux sessions quickly and easily using zoxide.
- set - Performant and flexible struct mapping and loose type conversion.
- shutdown - App shutdown hooks for os.Signal handling.
- silk - Read silk netflow files.
- slice - Type-safe functions for common Go slice operations.
- sliceconv - Slice conversion between primitive types.
- slicer - Makes working with slices easier.
- sorty - Fast Concurrent / Parallel Sorting.
- sqlx - provides a set of extensions on top of the excellent built-in database/sql package.
- sshman - SSH Manager for authorized_keys files on multiple remote servers.
- statiks - Fast, zero-configuration, static HTTP filer server.
- Storm - Simple and powerful toolkit for BoltDB.
- structs - Implement simple functions to manipulate structs.
- throttle - Throttle is an object that will perform exactly one action per duration.
- tik - Simple and easy timing wheel package for Go.
- tome - Tome was designed to paginate simple RESTful APIs.
- toolbox - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer.
- ugo - ugo is slice toolbox with concise syntax for Go.
- UNIS - Common Architecture™ for String Utilities in Go.
- upterm - A tool for developers to share terminal/tmux sessions securely over the web. It’s perfect for remote pair programming, accessing computers behind NATs/firewalls, remote debugging, and more.
- usql - usql is a universal command-line interface for SQL databases.
- util - Collection of useful utility functions. (strings, concurrency, manipulations, ...).
- watchhttp - Run command periodically and expose latest STDOUT or its rich delta as HTTP endpoint.
- wifiqr - Wi-Fi QR Code Generator.
- wuzz - Interactive cli tool for HTTP inspection.
- xferspdy - Xferspdy provides binary diff and patch library in golang.
- yogo - Check yopmail mails from command line.