cocoon/.cocoon-plan.md

99 lines
4.9 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 过滤
### Phase 5 — 应用网关(规划中)
- [ ] **FastCGI 支持** — 对接 PHP-FPM、uWSGI这是 Nginx 的核心功能cocoon 还缺
- [ ] **反向代理连接池** — HTTP/1.1 后端连接复用,减少握手开销(目前每请求都新建连接)
- [ ] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏
- [ ] **内存响应缓存** — 基于 LRU + TTL文件不大时直接缓存到内存避免重复磁盘 I/O
- [ ] **管理 Dashboard** — 内置 `/_status` 页面SSE 实时推送指标,像 HAProxy stats 那种
- [ ] **ACME / Let's Encrypt 自动证书** — 无需手动配置,自动签发续期
- [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
- [ ] **YAML / TOML 配置格式** — 配置验证时更友好
- [ ] **systemd 服务文件** — 一键安装成系统服务
- [ ] **Docker 多阶段构建** — 减小最终镜像
### Phase 6 — 硬核深潜(远期规划)
- [ ] **io_uring 接入** — 小文件走 io_uring 而非 sendfileHTTP/2 多路复用下理论上能再提一波
- [ ] **HTTP/3 完整握手0-RTT** — 目前 QUIC 骨架搭好了,可以再加 resumption 和新令牌
- [ ] **WAF 规则引擎** — 轻量级 Web 应用防火墙,正则匹配 + 可配置规则集
- [ ] **模糊测试libFuzzer** — 用 AFL/libFuzzer 跑 HTTP 解析器,找溢出和崩溃
- [ ] **QPACK 动态表** — 目前 HTTP/3 只有静态表,动态表是 RFC 9204 的完整实现
- [ ] **gRPC 反射 + 健康检查** — 支持 gRPC reflection 服务,服务网格里更方便
## 当前状态
- **编译状态**零警告全部通过2026-06-15 06:17 验证)
- **单元测试**458 个全部通过 ✓1 个 Ignored为预期行为
- **集成测试**115 项全部通过 ✓
- **代码覆盖率**核心模块覆盖完整Phase 4 模块覆盖良好
- **文档状态**README 完整API 文档齐全,.cocoon-plan.md 已更新
- **项目阶段**Phase 1~4 全部完成Phase 5 规划中
- **代码规模**28,000+ 行 C 代码(不含 coco 子模块458 单元测试 + 115 集成测试
## 待办池Phase 5 — 自然扩展)
### 2026-06-15 规划Phase 5 路线图
- **FastCGI 支持** — 当前最优先,对标 Nginx 核心能力
- **连接池** — 性能优化HTTP/1.1 后端连接复用
- **配置热重载校验** — 安全加固,防止坏配置导致服务中断
- 内存缓存、Dashboard、ACME 等后续按优先级推进
---
## 维护记录Phase 5 — 自然扩展)
+ 2026-06-15 06:17: **维护验证 — 定期巡检状态确认**
- 编译验证零警告make 全部通过(唯一 linker 警告来自外部 coco 库的 `.note.GNU-stack` section非项目本身问题
- 单元测试458 个全部通过 ✓1 个 Ignored为预期行为
- 集成测试115 项全部通过 ✓(含 HTTP/3、gRPC、负载均衡、扩展中间件、虚拟主机、SIGHUP 热重载、主动健康检查、Prometheus 指标、SSE 端到端等)
- 代码检查:无遗留 TODO/FIXMEcocoon 源码干净
- 编译产物检查:无误跟踪二进制文件,`.gitignore` 规则完整覆盖
- 工作区干净:无未提交改动,无需提交
- 项目状态健康所有路线图功能Phase 1~4已完成维护模式正常
- Phase 5 路线图规划完成FastCGI / 连接池 / 配置热重载校验 为优先项