Analysis updated 2026-05-18
Validate incoming API request data against rules declared directly on Go struct fields.
Get validation error messages translated into one of nine supported languages.
Validate plain strings with zero memory allocations using the faster VarString path.
Migrate an existing go-playground/validator codebase to a zero dependency alternative.
| kamalyes/go-argus | aasixh/devgrep | ruoji6/database_scan | |
|---|---|---|---|
| Stars | 27 | 27 | 27 |
| Language | Go | Go | Go |
| Setup difficulty | easy | easy | easy |
| Complexity | 2/5 | 2/5 | 3/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires Go 1.21 or later, install with go get and no other dependencies.
go-argus is a Go library for validating data in structs, meaning it checks that the values in your application's data meet specific rules before you process them. For example, you can declare that an email field must be a valid email address, a name must be between 2 and 50 characters, and an age must be between 0 and 150. If any rule is broken, the library returns structured error messages explaining what went wrong. You attach validation rules as tags, short labels, directly on the Go struct fields, which keeps validation definitions close to the data definition. The library then reads those tags at runtime to check the values. It covers over 97 built in rules for common formats like email addresses, URLs, IP addresses, UUIDs, credit card checksums, cryptocurrency addresses, cron expressions, and many more, plus cross field rules that compare one field against another. A performance focused feature called VarString lets you validate plain text strings without using Go's reflection system, a way programs inspect their own code at runtime that carries overhead. The VarString path validates strings directly, producing zero memory allocations for common string rules and making it roughly two to three times faster for string only checks. Rules that cannot use this fast path fall back automatically to the normal reflection based check. Error messages are built for international use from the start, with nine built in language translations covering English, Chinese, Traditional Chinese, Japanese, Korean, French, German, Spanish, and Russian, switchable with a single call, and new languages can be registered. The library also includes a lightweight JSON Schema validator and network utilities such as IP allowlists and CIDR checks. It has no third party dependencies, only Go's standard library, and is designed to be largely compatible with the popular go-playground validator library so existing code is easy to migrate. It requires Go 1.21 or later and is released under the MIT license.
A zero dependency Go library for validating struct data with over 97 built in rules and nine language translations.
Mainly Go. The stack also includes Go.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.