Go Utilities

Open-source Go projects categorized as Utilities

Top 23 Go Utility Projects

  • fzf

    :cherry_blossom: A command-line fuzzy finder

    Project mention: A Practical Guide to fzf: Vim Integration | /r/commandline | 2023-11-29

    There are two plugins allowing us to use fzf in Vim: the native fzf plugin directly installed with fzf, and fzf.vim. The second plugin is built on the first one.

  • dive

    A tool for exploring each layer in a docker image

    Project mention: Dive – A tool for exploring each layer in a Docker image | news.ycombinator.com | 2023-10-19
  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • ngrok

    Introspected tunnels to localhost

  • hub

    A command-line tool that makes git easier to use with GitHub.

    Project mention: GitHub Discussion about the recent feed changes becomes 3rd most upvoted ever | news.ycombinator.com | 2023-09-11

    Use hub here via CLI and forget the gui https://hub.github.com/

  • delve

    Delve is a debugger for the Go programming language.

    Project mention: The worst thing about Jenkins is that it works | news.ycombinator.com | 2023-12-03

    At a recent job, we had slightly different containers for local dev; our backend containers (for a Go app) had Air [1] installed for live reloading, plus Delve [2] running inside the container for VS Code's debugger to connect to. We also had a frontend container for local dev, which didn't get deployed as a container, just as static files.

    [1] https://github.com/cosmtrek/air

    [2] https://github.com/go-delve/delve/

  • gin-vue-admin

    基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器,chatGPT自动查表等开发必备功能。

  • excelize

    Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets

    Project mention: Recommend a powerful excel processing library, @zurmokeeper/exceljs, which supports encryption and decryption of xlsx files and flexible setting of multiple table headers when exporting, etc. | /r/node | 2023-07-01

    Then I found out that WPS only supports ecma376 standard encrytion for xlsx files. Then I referred to the official documentation and libraries in other languages, such as msoffcrypto-tool written in python. msoffcrypto-tool) and go's excelize. Since I don't know much about encryption and decryption, the process of implementation is also a bit of a twist.

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • ctop

    Top-like interface for container metrics

    Project mention: Lazydocker | news.ycombinator.com | 2023-07-18

    This does remind me of ctop as well: https://github.com/bcicen/ctop

    It also let's you look at containers, resource usage graphs, their logs and even do some actions through a TUI.

  • GJSON

    Get JSON values quickly - JSON parser for Go

    Project mention: Rob Pike: Gobs of data (2011) | news.ycombinator.com | 2023-12-04

    Someone made a benchmark of serialization libraries in go [1], and I was surprised to see gobs is one of the slowest ones, specially for decoding. I suspect part of the reason is that the API doesn't not allow reusing decoders [2]. From my explorations it seems like both JSON [3], message-pack [4] and CBOR [5] are better alternatives.

    By the way, in Go there are a like a million JSON encoders because a lot of things in the std library are not really coded for maximum performance but more for easy of usage, it seems. Perhaps this is the right balance for certain things (ex: the http library, see [6]).

    There are also a bunch of libraries that allow you to modify a JSON file "in place", without having to fully deserialize into structs (ex: GJSON/SJSON [7] [8]). This sounds very convenient and more efficient that fully de/serializing if we just need to change the data a little.

    --

    1: https://github.com/alecthomas/go_serialization_benchmarks

    2: https://github.com/golang/go/issues/29766#issuecomment-45492...

    --

    3: https://github.com/goccy/go-json

    4: https://github.com/vmihailenco/msgpack

    5: https://github.com/fxamacker/cbor

    --

    6: https://github.com/valyala/fasthttp#faq

    --

    7: https://github.com/tidwall/gjson

    8: https://github.com/tidwall/sjson

  • goreleaser

    Deliver Go binaries as fast and easily as possible

    Project mention: Distribuindo uma aplicação Go sem o Docker | dev.to | 2023-10-27
  • wuzz

    Interactive cli tool for HTTP inspection

  • Task

    A task runner / simpler Make alternative written in Go

    Project mention: Go Development with Hot Reload Using Taskfile | dev.to | 2023-11-11

    That's when I came across taskfile.dev. Task is an automation tool designed to be more accessible than other options, such as GNU Make.

  • usql

    Universal command-line interface for SQL databases

    Project mention: xo/usql: Universal command-line interface for SQL databases | /r/devel | 2023-06-08
  • peco

    Simplistic interactive filtering tool

  • godotenv

    A Go port of Ruby's dotenv library (Loads environment variables from .env files)

    Project mention: Tools besides Go for a newbie | /r/golang | 2023-03-26

    IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here

  • xlsx

    Go library for reading and writing XLSX files.

  • kopia

    Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included.

    Project mention: Kopia: Open-Source, Fast and Secure Open-Source Backup Software | news.ycombinator.com | 2023-09-15

    Kopia is great, though it's worth noting for folks on Linux: non-UTF-8 paths aren't stored correctly [1] and xattrs aren't stored [2]. While most folks probably won't care about the former, the latter can could cause issues (eg. losing SELinux labels makes it difficult to restore a backup of the root filesystem on distros that use SELinux).

    [1] https://github.com/kopia/kopia/issues/1764

    [2] https://github.com/kopia/kopia/issues/544

  • go-funk

    A modern Go utility library which provides helpers (map, find, contains, filter, ...)

  • godropbox

    Common libraries for writing Go services/applications.

  • hystrix-go

    Netflix's Hystrix latency and fault tolerance library, for Go

    Project mention: Choosing dependencies using deps.dev | dev.to | 2023-04-21

    afex/hystrix-go

  • minify

    Go minifiers for web formats (by tdewolff)

    Project mention: Including .so file in a lua rock | /r/lua | 2023-02-28

    I want to write the lua bindings for tdewolff/minify the appropriate way. It already has python and js bindings but I can't figure out how to do that. The python bindings seems to use the shared object file, but the js doesn't work like that. What options do I have?

  • panicparse

    Crash your app in style (Golang)

  • gorequest

    GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-12-04.

Go Utilities related posts

Index

What are some of the best open-source Utility projects in Go? This list will help you:

Project Stars
1 fzf 55,712
2 dive 39,599
3 ngrok 23,351
4 hub 22,573
5 delve 21,355
6 gin-vue-admin 18,818
7 excelize 16,311
8 ctop 14,779
9 GJSON 13,053
10 goreleaser 12,341
11 wuzz 10,393
12 Task 8,999
13 usql 8,339
14 peco 7,478
15 godotenv 6,909
16 xlsx 5,592
17 kopia 5,312
18 go-funk 4,481
19 godropbox 4,156
20 hystrix-go 4,068
21 minify 3,477
22 panicparse 3,457
23 gorequest 3,338
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com