- 更新所有 AGENTS.md 时间戳至 2026-04-24 - 添加 converter、e2e、testutil 模块文档 - 更新 README.md:nginx 配置导入、stale 缓存功能说明 - 更新项目统计:132 Go 文件,157 测试文件 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
internal
Purpose
核心业务代码目录,包含服务器、配置、处理器、中间件、日志等模块。Go 的 internal 包机制确保这些代码不可被外部项目导入。
Subdirectories
| Directory | Purpose |
|---|---|
app/ |
应用程序入口和运行逻辑(启动、信号处理、版本信息、nginx 配置导入) |
benchmark/ |
基准测试基础设施(Mock 后端、负载生成器、回归检测) |
cache/ |
文件缓存模块(缓存存储、过期管理、stale 回退) |
config/ |
配置解析、验证和默认值生成 |
converter/ |
配置转换器(nginx 配置导入) |
e2e/ |
端到端测试(完整功能验证、容器化测试) |
handler/ |
HTTP 请求处理器(路由、静态文件、Sendfile、ETag) |
http2/ |
HTTP/2 协议支持(ALPN 协商、fasthttp 适配) |
http3/ |
HTTP/3 (QUIC) 协议支持(fasthttp 适配、0-RTT) |
integration/ |
集成测试(多模块端到端协作验证) |
loadbalance/ |
负载均衡策略(轮询、最少连接、健康检查) |
logging/ |
日志系统(zerolog 初始化、访问日志) |
lua/ |
Lua 脚本引擎(OpenResty 风格沙箱、ngx API) |
matcher/ |
路径匹配器(精确、前缀、正则匹配) |
middleware/ |
中间件框架(接口定义、链式组合) |
mimeutil/ |
MIME 类型检测(扩展名映射、类型推断) |
netutil/ |
网络工具函数(客户端 IP 提取、URL 解析) |
proxy/ |
反向代理模块(HTTP/WebSocket 代理、DNS 解析) |
resolver/ |
DNS 解析器(缓存、后台刷新、域名动态解析) |
server/ |
HTTP 服务器核心、虚拟主机、热升级、状态监控 |
ssl/ |
SSL/TLS 管理(证书加载、OCSP Stapling、Session Tickets) |
sslutil/ |
SSL 工具函数(证书池加载、CA 信任链) |
stream/ |
TCP/UDP Stream 代理模块 |
testutil/ |
测试工具函数(Mock、断言助手) |
utils/ |
HTTP 错误处理(统一错误响应助手) |
variable/ |
变量系统(nginx 风格变量展开、日志格式模板) |
For AI Agents
Working In This Directory
- 所有包使用
rua.plus/lolly/internal/{package}导入路径 - 各子包有独立职责,遵循 Go 包设计原则
- 添加新功能时应参考
docs/plan.md确定所属模块 - 测试文件与源文件同目录,使用
_test.go后缀
Testing Requirements
- 每个包应有对应的测试文件
- 运行测试:
go test ./internal/... - 测试覆盖率目标 >80%
Common Patterns
- 使用 fasthttp 的
RequestHandler函数签名处理请求 - 配置结构体使用
yaml标签 - 中间件通过
Chain.Apply()逆序包装 - 服务器通过
fasthttp.Server配置超时和连接限制
Dependencies
External
github.com/valyala/fasthttp- HTTP 服务器框架github.com/fasthttp/router- 路由器github.com/rs/zerolog- 日志库gopkg.in/yaml.v3- YAML 解析