ArcGo Documentation
ArcGo Documentation
ArcGo
ArcGo is a modular Go backend infrastructure toolkit. It consists of independent packages, so you can adopt only what you need.
Quick Start
go get github.com/DaiYuANg/arcgo/{package}Package Overview
| Package | Purpose | Description |
|---|---|---|
| authx | Authentication & Authorization | Extensible abstraction for multi-scenario authentication and authorization |
| clientx | Protocol Clients | Protocol-oriented clients (http/tcp/udp) with shared engineering conventions |
| collectionx | Data Structures | Generic collections and concurrency-safe structures |
| configx | Configuration Management | Hierarchical configuration loading and validation |
| dix | Application Framework | Strongly typed modular app framework built on do |
| eventx | Event Bus | In-process strongly typed event bus |
| httpx | HTTP Routing | Multi-framework unified strongly typed HTTP routing |
| kvx | Redis / Valkey Access | Strongly typed Redis / Valkey object access and repository layer |
| logx | Logging | Structured logging with slog interoperability |
| observabilityx | Observability | Optional observability abstraction (OTel/Prometheus) |
| dbx | ORM & Migrations | Schema-first / generic-first ORM core on database/sql(包含 dbx/sqltmplx) |
Roadmap
- Unified roadmap (all modules): ArcGo roadmap
- Module-level roadmap details:
- authx roadmap
- clientx roadmap
- collectionx roadmap
- configx roadmap
- eventx roadmap
- httpx roadmap
- logx roadmap
- observabilityx roadmap
How to Choose
- Need container/data utilities: Start with
collectionx - Need an extensible authentication/authorization abstraction: Start with
authx - Need protocol-oriented clients (
http/tcp/udp) with shared conventions: Start withclientx - Need configuration loading from
.env+ files + environment variables: Start withconfigx - Need modular application composition, typed DI, lifecycle, and startup validation: Start with
dix - Need in-process typed pub/sub: Start with
eventx - Need unified typed HTTP handlers across frameworks: Start with
httpx - Need strongly typed Redis / Valkey repositories and access helpers: Start with
kvx - Need SQL-first dynamic query templating with optional parser-backed validation: Start with
dbx(includesdbx/sqltmplx) - Need structured logging with rotation: Start with
logx - Need optional telemetry abstraction (OTel/Prometheus): Start with
observabilityx
Typical Combinations
- API Service Baseline:
httpx + configx + logx - Modular App Baseline:
dix + configx + logx - Event-driven within monolith:
eventx + logx - Redis / Valkey-backed service:
kvx + httpx + configx - Data-intensive tools/internal libraries:
collectionx + configx
Common Commands
# Format code
go tool task fmt
# Lint code
go tool task lint
# Run tests
go tool task test
# Full check
go tool task checkPre-commit Git Hook
The repository uses lefthook (managed via go tool).
Install once per clone:
go tool task git:hooks:installRun hooks manually:
go tool task git:hooks:runThe pre-commit hook runs:
go tool task fmtgo tool task lint
Notes
- Code comments are unified in English
- Chinese documentation uses
_index.mdfiles