- app: 添加信号处理、配置重载、日志重开测试 - handler/sendfile: 添加小文件、偏移量、错误情况测试 - server: 添加统计追踪、监听器、TLS配置测试 - http3: 新增 adapter 和 server 单元测试 - 格式修复: 末尾换行符、注释对齐 - 文档: AGENTS.md 添加 http3 模块说明 Co-Authored-By: Claude <noreply@anthropic.com>
2.0 KiB
2.0 KiB
internal
Purpose
核心业务代码目录,包含服务器、配置、处理器、中间件、日志等模块。Go 的 internal 包机制确保这些代码不可被外部项目导入。
Subdirectories
| Directory | Purpose |
|---|---|
app/ |
应用程序入口和运行逻辑(启动、信号处理、版本信息) |
cache/ |
文件缓存模块(缓存存储、过期管理) |
config/ |
配置解析、验证和默认值生成 |
handler/ |
HTTP 请求处理器(路由、静态文件、Sendfile) |
http3/ |
HTTP/3 (QUIC) 协议支持(fasthttp 适配、0-RTT) |
loadbalance/ |
负载均衡策略(轮询、最少连接、健康检查) |
logging/ |
日志系统(zerolog 初始化、访问日志) |
middleware/ |
中间件框架(接口定义、链式组合) |
proxy/ |
反向代理模块(HTTP/WebSocket 代理) |
server/ |
HTTP 服务器核心、虚拟主机、热升级、状态监控 |
ssl/ |
SSL/TLS 管理(证书加载、OCSP Stapling) |
stream/ |
TCP/UDP Stream 代理模块 |
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 解析