abutil alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view abutil alternatives based on common mentions on social networks and blogs.
-
项目文档
基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器,chatGPT自动查表等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
godotenv
A Go port of Ruby's dotenv library (Loads environment variables from .env 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. -
go-funk
A modern Go utility library which provides helpers (map, find, contains, filter, ...) -
hystrix-go
Netflix's Hystrix latency and fault tolerance library, for Go -
lancet
A comprehensive, efficient, and reusable util function library of Go. -
gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
gojson
Automatically generate Go (golang) struct definitions from example JSON -
create-go-app
✨ 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. -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
spinner
Go (golang) package with 90 configurable terminal spinner/progress indicators. -
filetype
Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature -
boilr
:zap: boilerplate template manager that generates files or directories from template repositories -
mole
CLI application to create ssh tunnels focused on resiliency and user experience. -
mimetype
A fast Golang library for media type and file extension detection, based on magic numbers -
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -
go-underscore
Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. -
JobRunner
Framework for performing work asynchronously, outside of the request flow
WorkOS - The modern identity platform for B2B SaaS
Do you think we are missing an alternative of abutil or a related project?
Popular Comparisons
README
abutil
abutil is a collection of often-used Golang helpers.
Contents
Functions
OnSignal
Listens to various signals and executes the given function with the received signal.
go abutil.OnSignal(func(s os.Signal) {
fmt.Printf("Got signal %s\n", s)
})
Parallel
Executes the given function n times concurrently.
var m sync.Mutex
c := 0
abutil.Parallel(4, func() {
m.Lock()
defer m.Unlock()
fmt.Print(c)
c++
})
RollbackErr
Does a rollback on the given transaction and returns either the rollback-error, if occured, or the given one.
insertSomething := func(db *sql.DB) error {
tx, _ := db.Begin()
_, err := tx.Exec("INSERT INTO some_table (some_column) VALUES (?)",
"foobar")
if err != nil {
// The old way, imagine doing this 10 times in a method
if err := tx.Rollback(); err != nil {
return err
}
return err
}
_, err = tx.Exec("DROP DATABASE foobar")
if err != nil {
// With RollbackErr
return abutil.RollbackErr(tx, err)
}
return nil
}
RemoteIP
Tries everything to get the remote ip.
someHandler := func(w http.ResponseWriter, r *http.Request) {
fmt.Printf("New request from %s\n", abutil.RemoteIP(r))
}
GracefulServer
A wrapper around graceful.Server
from http://github.com/tylerb/graceful
with state variable and easier handling.
s := abutil.NewGracefulServer(1337, someHandlerFunc)
// This channel blocks until all connections are closed or the time is up
sc := s.StopChan()
// Some go func that stops the server after 2 seconds for no reason
time.After(2 * time.Second, func() {
s.Stop(10 * time.Second)
})
if err := s.ListenAndServe(); err != nil && !s.Stopped() {
// We didn't stop the server, so something must be wrong
panic(err)
}
// Wait for the server to finish
<-sc
License
This project is licensed under the WTFPL, for more information see the LICENSE file.
*Note that all licence references and agreements mentioned in the abutil README section above
are relevant to that project's source code only.