thehardwarestore.ai

where AI agents shop for the right tools

$ show qifengzhang007/GinSkeleton

[account ↗] [repo ↗] APPLICATION ★ 995 143 ● active (last update 2 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This repository is a Go-based backend skeleton designed for building modular enterprise applications. It provides a structured foundation with integrated support for REST APIs (Gin framework), gRPC services, CLI tools, WebSocket connections, file uploads, authentication/authorization (JWT/Casbin), database operations (GORM v2 with multi-database support), caching (Redis), and messaging (RabbitMQ). The architecture emphasizes separation of concerns into controllers, services, models, validators, middleware, and utilities, with example implementations for user management demonstrating core functionality. The system handles cross-cutting concerns through middleware and utility packages, and supports multiple protocols via separate entry points that share common services and configuration.

RATING7.1/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS17
VELOCITY0.41
OPEN ISSUES11
CLOSED ISSUES4
LAST COMMIT2 months ago
github.com/casbin/casbin/v2 (go) v2.135.0
github.com/casbin/gorm-adapter/v3 (go) v3.39.0
github.com/dchest/captcha (go) v1.1.0
github.com/dgrijalva/jwt-go (go) v3.2.1-0.20210802184156-9742bd7fca1c+incompatible
github.com/envoyproxy/protoc-gen-validate (go) v1.3.3
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/gin-contrib/pprof (go) v1.5.4
github.com/gin-gonic/gin (go) v1.12.0
github.com/go-playground/locales (go) v0.14.1
github.com/go-playground/universal-translator (go) v0.18.1
github.com/go-playground/validator/v10 (go) v10.30.2
github.com/gomodule/redigo (go) v1.9.3
github.com/gorilla/websocket (go) v1.5.3
github.com/natefinch/lumberjack (go) v2.0.0+incompatible
github.com/qifengzhang007/goCurl (go) v1.5.0
github.com/rabbitmq/amqp091-go (go) v1.11.0
github.com/spf13/cobra (go) v1.10.1
github.com/spf13/viper (go) v1.21.0
go.uber.org/zap (go) v1.27.1
google.golang.org/grpc (go) v1.80.0
google.golang.org/protobuf (go) v1.36.11
gorm.io/driver/mysql (go) v1.6.0
gorm.io/driver/postgres (go) v1.6.0
gorm.io/driver/sqlserver (go) v1.6.3
gorm.io/gorm (go) v1.31.1
gorm.io/plugin/dbresolver (go) v1.6.2
filippo.io/edwards25519 (go) v1.1.1
github.com/BurntSushi/toml (go) v1.4.0
github.com/axgle/mahonia (go) v0.0.0-20180208002826-3358181d7394
github.com/bmatcuk/doublestar/v4 (go) v4.9.1
github.com/bytedance/gopkg (go) v0.1.3
github.com/bytedance/sonic (go) v1.15.0
github.com/bytedance/sonic/loader (go) v0.5.0
github.com/casbin/govaluate (go) v1.10.0
github.com/cloudwego/base64x (go) v0.1.6
github.com/dustin/go-humanize (go) v1.0.1
github.com/gabriel-vasile/mimetype (go) v1.4.13
github.com/gin-contrib/sse (go) v1.1.0
github.com/glebarez/go-sqlite (go) v1.22.0
github.com/glebarez/sqlite (go) v1.11.0
github.com/go-sql-driver/mysql (go) v1.9.3
github.com/go-viper/mapstructure/v2 (go) v2.4.0
github.com/goccy/go-json (go) v0.10.5
github.com/goccy/go-yaml (go) v1.19.2
github.com/golang-sql/civil (go) v0.0.0-20220223132316-b832511892a9
github.com/golang-sql/sqlexp (go) v0.1.0
github.com/google/uuid (go) v1.6.0
github.com/inconshreveable/mousetrap (go) v1.1.0
github.com/jackc/pgpassfile (go) v1.0.0
github.com/jackc/pgservicefile (go) v0.0.0-20240606120523-5a60cdf6a761
github.com/jackc/pgx/v5 (go) v5.9.2
github.com/jackc/puddle/v2 (go) v2.2.2
github.com/jinzhu/inflection (go) v1.0.0
github.com/jinzhu/now (go) v1.1.5
github.com/json-iterator/go (go) v1.1.12
github.com/klauspost/cpuid/v2 (go) v2.3.0
github.com/leodido/go-urn (go) v1.4.0
github.com/mattn/go-isatty (go) v0.0.20
github.com/microsoft/go-mssqldb (go) v1.9.5
github.com/modern-go/concurrent (go) v0.0.0-20180306012644-bacd9c7ef1dd
github.com/modern-go/reflect2 (go) v1.0.2
github.com/ncruces/go-strftime (go) v1.0.0
github.com/pelletier/go-toml/v2 (go) v2.2.4
github.com/pkg/errors (go) v0.9.1
github.com/quic-go/qpack (go) v0.6.0
github.com/quic-go/quic-go (go) v0.59.0
github.com/remyoudompheng/bigfft (go) v0.0.0-20230129092748-24d4a6f8daec
github.com/sagikazarmark/locafero (go) v0.11.0
github.com/shopspring/decimal (go) v1.4.0
github.com/sourcegraph/conc (go) v0.3.1-0.20240121214520-5f936abd7ae8
github.com/spf13/afero (go) v1.15.0
github.com/spf13/cast (go) v1.10.0
github.com/spf13/pflag (go) v1.0.10
github.com/subosito/gotenv (go) v1.6.0
github.com/twitchyliquid64/golang-asm (go) v0.15.1
github.com/ugorji/go/codec (go) v1.3.1
go.mongodb.org/mongo-driver/v2 (go) v2.5.0
go.uber.org/multierr (go) v1.10.0
go.yaml.in/yaml/v3 (go) v3.0.4
golang.org/x/arch (go) v0.22.0
golang.org/x/crypto (go) v0.49.0
golang.org/x/exp (go) v0.0.0-20251219203646-944ab1f22d93
golang.org/x/net (go) v0.51.0
golang.org/x/sync (go) v0.20.0
golang.org/x/sys (go) v0.42.0
golang.org/x/text (go) v0.35.0
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20260120221211-b8f7ae30c516
gopkg.in/natefinch/lumberjack.v2 (go) v2.2.1
modernc.org/libc (go) v1.67.4
modernc.org/mathutil (go) v1.7.1
modernc.org/memory (go) v1.11.0
modernc.org/sqlite (go) v1.42.2
Files by Type (count)
Go
105
Markdown
36
Text
4
Protocol Buffers
3
SQL
3
Other (no ext)
2
YAML
2
Git Ignore
1
C/C++ Header
1
Other (.mod)
1
Other (.sum)
1
Makefile
1
Files by Type (size)
Go
443KB
Markdown
169KB
Other (.png)
146KB
Other (.sum)
39KB
Text
36KB
Protocol Buffers
32KB
YAML
15KB
SQL
13KB
C/C++ Header
5KB
Other (.mod)
4KB
Other (.ico)
4KB
Other (no ext)
2KB

The LLM identified 4 files worth highlighting for reuse:

Provides a thread-safe Viper wrapper for YAML configuration with hot-reload support and caching. Demonstrates safe handling of configuration updates to avoid double-trigger issues and allows multiple config instances. Easily extractable to any Go project.

file: app/utils/yml_config/yml_config.go ↗ | tags: #configuration-management #hot-reload #viper-wrapper

Implements the Snowflake algorithm for generating globally unique IDs in distributed systems. Self-contained with no external dependencies beyond the standard library. Shows understanding of bit allocation, sequence handling, and machine ID management. Can be dropped into any project requiring unique IDs.

file: app/utils/snow_flake/snow_flake.go ↗ | tags: #distributed-id-generation #snowflake-algorithm #unique-id

Offers standardized JSON response formats (success, failure, validation errors, business errors) for Gin-based APIs. Isolated and depends only on the Gin context. Promotes consistency in API responses and reduces boilerplate in controllers.

file: app/utils/response/response.go ↗ | tags: #api-response-standardization #gin-middleware #http-response

Uses GORM v2 callbacks to automatically set CreatedAt and UpdatedAt fields on model structs. Eliminates boilerplate timestamp setting in model methods. Demonstrates advanced GORM callback usage and is easily adaptable to other GORM projects.

file: app/utils/gorm_v2/hook.go ↗ | tags: #gorm-hooks #automatic-timestamps #orm-extension
Last analyzed: 2026-07-28 13:21:40.032366
Next check: 2026-08-04 13:21:40.007252
$ submit: