cocoon/.cocoon-plan.md
xfy911 87bae245d2 build(phase4): 更新构建系统与文档,集成 Phase 4 模块
- CMakeLists.txt: 新增 middleware_ext.c、load_balance.c、grpc.c、
  http3.c 到源文件列表和单元测试列表
- Makefile: 更新 SRCS,新增 4 个模块的单元测试编译规则
- README.md: 新增 Phase 4 特性(JWT Auth、负载均衡、gRPC、HTTP/3)、
  模块说明表、路线图标记全部完成、测试统计(451 单元测试)
- .cocoon-plan.md: Phase 4 全部标记为完成,更新当前状态与行动记录
2026-06-10 11:36:59 +08:00

170 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cocoon 发展规划(自主维护)
> 此文件由 cron 任务每3小时更新记录项目状态与下一步计划。
## 路线图
### Phase 1 — 核心稳定(已完成)
- [x] HTTP/1.1 请求解析
- [x] 响应头格式化
- [x] 静态文件服务sendfile
- [x] 目录浏览
- [x] Range 请求
- [x] MIME 类型识别
- [x] 多线程 M:N 调度
- [x] 命令行参数
- [x] 优雅关闭
### Phase 2 — 健壮性(已完成)
- [x] HTTP 缓存ETag / Last-Modified / If-None-Match
- [x] Gzip / Brotli 压缩
- [x] 完整的单元测试框架
- [x] 压力测试 + 性能基准
- [x] 连接超时管理(空闲连接自动清理)
- [x] 请求体解析POST 支持)
### Phase 3 — 扩展(已完成)
- [x] 配置文件支持JSON
- [x] 虚拟主机 / 多站点
- [x] 反向代理支持
- [x] HTTPS / TLS
- [x] HTTP/2
- [x] h2c 明文升级
- [x] WebSocket 支持
- [x] 中间件机制CORS / Basic Auth / Rate Limit
- [x] 插件系统(动态加载 + 热重载)
- [x] 健康检查端点
- [x] 主动健康检查
- [x] Prometheus 指标
- [x] SIGHUP 配置热重载
### Phase 4 — 生态(已完成 ✅)
- [x] HTTP/3 (QUIC) — QUIC 传输层 + HTTP/3 帧处理 + QPACK 静态表 + TLS 1.3 接口
- [x] 分布式负载均衡 — 一致性哈希 + 最少连接 + 加权响应时间(EWMA) + 随机
- [x] gRPC 支持 — gRPC over HTTP/2 + protobuf LEB128 帧 + 四种 RPC 模式 + gRPC-Web 兼容
- [x] 更多内置中间件 — JWT Auth(HS256) + Security Headers + Request ID + IP 过滤
## 当前状态
- **编译状态**:零警告,全部通过
- **单元测试**451 个全部通过 ✓(原有 190 + 新增 26153 middleware_ext + 56 load_balance + 88 grpc + 64 http3
- **集成测试**109 项全部通过 ✓
- **代码覆盖率**核心模块覆盖完整Phase 4 模块覆盖良好
- **文档状态**README 完整API 文档齐全,.cocoon-plan.md 已更新
- **项目阶段**所有计划功能已完成Phase 1~4 全部 ✅)
- **新增代码**12 个新文件,约 8520 行源代码 + 测试
## 待办池(已完成清空)
所有计划内功能已完成。项目全部路线图功能已交付。
## 最近行动记录
- 2026-06-10 11:30: **Phase 4 生态扩展 — 全部完成 ✅**
- 扩展中间件:新增 middleware_ext.c/h — JWT Auth(HS256)、Security Headers(HSTS/CSP/X-Frame-Options)、Request ID(32字符hex追踪)、IP 过滤(黑名单/白名单/CIDR)
- 分布式负载均衡:新增 load_balance.c/h — 一致性哈希(MurmurHash3+512虚拟节点)、最少连接、加权响应时间(EWMA)、随机算法
- gRPC 支持:新增 grpc.c/h — gRPC over HTTP/2、LEB128 消息帧编解码、四种 RPC 模式(Unary/Server/Client/Bidirectional)、gRPC-Web 兼容、17个状态码完整支持
- HTTP/3 (QUIC):新增 http3.c/h — QUIC 传输层(UDP+连接管理)、HTTP/3 帧处理(DATA/HEADERS/SETTINGS/GOAWAY)、QPACK 静态表编解码(RFC 9204)、TLS 1.3 集成接口
- 新增 261 个单元测试(累计 451 个),全部通过
- 更新构建系统CMakeLists.txt + Makefile 已同步
- 项目全部路线图功能已交付
- 2026-06-10 09:00: **状态验证与维护检查**
- 编译检查:零警告,全部通过
- 单元测试190 个全部通过 ✓
- 集成测试109 项全部通过 ✓
- 维护模式确认:无新功能开发计划,仅做状态验证
- 2026-06-10 06:00: **状态验证与文档更新**
- 编译检查:零警告,全部通过
- 单元测试190 个全部通过 ✓
- 集成测试109 项全部通过 ✓
- README 更新:虚拟主机 / 多站点标记为 ✅ 完成
- 项目进入维护阶段,所有路线图功能已完成
- 2026-06-10 03:00: **SIGHUP 配置热重载**
- `server.h` / `server.c`: 新增 `server_request_reload()``server_reload_config()` 热重载 API
- 热重载范围root_dir、log_level、access_log、gzip/brotli、timeout、max_connections、vhosts、proxies、healthcheck
- 不可热重载项port、threaded、num_workers、tls_cert/key日志警告
- `main.c`: 新增 `sighup_handler()` 注册 `SIGHUP` 信号
- `tests/integration_test.sh`: 新增 SIGHUP 热重载集成测试3项
- 编译零警告190 个单元测试 + 109 项集成测试全部通过
- 2026-06-09 15:00: **虚拟主机 / 多站点支持**
- 新增 `cocoon_vhost_t` 结构体和 `COCOON_MAX_VHOSTS`
- JSON 配置解析器新增 `vhosts` 数组解析
- HTTP/1.1 和 HTTP/2 请求根据 Host 头匹配虚拟主机
- 新增 3 项虚拟主机集成测试
- 2026-06-09 12:00: **主动健康检查**
- 新增 `healthcheck.c` / `healthcheck.h` 模块
- 支持 HTTP 探测和可配置阈值
- 新增 17 项主动健康检查单元测试
- 2026-06-09 09:00: **HTTP/2 代理流式转发**
- 实现 HTTP/2 到后端的流式转发支持
- 优化代理性能
- 2026-06-09 06:00: **反向代理单元测试**
- 新增 31 项反向代理单元测试
- 总单元测试数达到 190 个
- 2026-06-08 18:00: **HTTP/2 代理 + 连接池 HTTP/1.0 兼容**
- 实现 HTTP/2 反向代理支持
- 修复连接池 HTTP/1.0 后端兼容问题
- 2026-06-08 12:00: **反向代理核心功能**
- 新增 `proxy.c` / `proxy_tls.c` 模块
- 支持路径前缀匹配、加权轮询、被动健康检查
- 新增 6 项反向代理集成测试
- 2026-06-08 06:00: **HTTP/2 静态文件服务 + h2c 升级**
- 实现 HTTP/2 静态文件服务(多路复用 + 流式响应)
- 新增 h2c 明文升级支持Prior Knowledge + Upgrade 协商)
- 新增 6 项 HTTP/2 集成测试
- 单元测试总数 142 个,集成测试 82 项
- 2026-06-07 18:00: **WebSocket 广播 / 频道路由**
- 实现 WebSocket 广播、频道路由、定向发送
- 新增 12 项 WebSocket 单元测试
- 2026-06-07 12:00: **TLS/HTTPS 支持**
- 实现 TLS 1.2/1.3OpenSSL Memory BIO
- ALPN 协商 HTTP/2
- 新增 HTTPS 集成测试
- 2026-06-07 06:00: **中间件 + 插件系统**
- 实现 CORS / Basic Auth / Rate Limit 中间件
- 实现动态插件加载 + SIGUSR1 热重载
- 新增中间件和插件集成测试
- 2026-06-06 18:00: **配置系统 + 访问日志 + 压缩**
- JSON 配置文件解析
- Nginx combined 格式访问日志
- Brotli / Gzip 动态压缩
- 2026-06-06 12:00: **缓存 + 连接管理 + 日志**
- ETag / Last-Modified 缓存协商
- 空闲连接超时 + 最大并发限制
- 分级日志系统
- 2026-06-06 06:00: **POST 支持 + 跨平台**
- JSON / form-urlencoded / multipart 文件上传
- WindowsMinGW/MSVC跨平台支持
- 2026-06-05 18:00: **性能基准 + 测试框架**
- wrk 压测脚本
- Unity 单元测试框架
- 142 个单元测试
- 2026-06-05 12:00: **核心功能完成**
- HTTP/1.1 请求解析、响应格式化
- 静态文件服务sendfile、目录浏览
- Range 请求、MIME 类型识别
- 多线程 M:N 调度
- 命令行参数 + 优雅关闭
- 2026-06-03: **项目初始化**
- 创建仓库,核心模块全部实现
- 添加示例首页和基本文档