跳至内容

ArcGo 文档

ArcGo

ArcGo 是一个模块化的 Go 后端基础设施工具集。它由独立的包组成,因此你可以只采用你需要的部分。

快速开始

go get github.com/DaiYuANg/arcgo/{package}

包概览

作用描述
authx认证与授权多场景可扩展的认证与鉴权抽象层
clientx协议客户端协议导向客户端(http/tcp/udp)+ 共享工程约束
collectionx数据结构泛型集合与并发安全结构
configx配置管理分层配置加载与校验
dix应用框架基于 do 的强类型模块化应用框架
eventx事件总线进程内强类型事件总线
httpxHTTP 路由多框架统一强类型 HTTP 路由
kvxRedis / Valkey 访问强类型 Redis / Valkey 对象访问与 repository 层
logx日志记录结构化日志与 slog 互通
observabilityx可观测性可选可观测性抽象(OTel/Prometheus)
dbxORM 与迁移基于 database/sql 的 schema-first / generic-first ORM 核心(包含 dbx/sqltmplx

路线图

如何选择

  • 需要容器/数据辅助:从 collectionx 开始
  • 需要可扩展的认证/鉴权抽象:从 authx 开始
  • 需要协议导向客户端(http/tcp/udp)并共享工程约束:从 clientx 开始
  • 需要从 .env + 文件 + 环境变量加载配置:从 configx 开始
  • 需要模块化应用组装、typed DI、生命周期和启动校验:从 dix 开始
  • 需要进程内带类型负载的 pub/sub:从 eventx 开始
  • 需要跨框架的统一类型化 HTTP 处理器:从 httpx 开始
  • 需要强类型 Redis / Valkey 仓储与访问辅助:从 kvx 开始
  • 需要 SQL 优先的动态查询模板和可选 parser 校验:从 dbx 开始(包含 dbx/sqltmplx
  • 需要结构化日志和轮转:从 logx 开始
  • 需要可选的遥测抽象(OTel/Prometheus):从 observabilityx 开始

典型组合

  • API 服务基线: httpx + configx + logx
  • 模块化应用基线: dix + configx + logx
  • 单体应用内事件驱动: eventx + logx
  • Redis / Valkey 支撑服务: kvx + httpx + configx
  • 数据密集型工具/内部库: collectionx + configx

常用命令

# 格式化代码
go tool task fmt

# 代码检查
go tool task lint

# 运行测试
go tool task test

# 全面检查
go tool task check

Git 提交前 Hook

仓库使用 lefthook(通过 go tool 管理)。

每个 clone 只需执行一次安装:

go tool task git:hooks:install

手动执行 hook:

go tool task git:hooks:run

pre-commit hook 会执行:

  • go tool task fmt
  • go tool task lint

说明

  • 代码注释统一为英文
  • 中文文档统一使用 _index.md 文件

链接