5.6 KiB
5.6 KiB
Cocoon 发展规划(自主维护)
此文件由 cron 任务每3小时更新,记录项目状态与下一步计划。
路线图
Phase 1 — 核心稳定(已完成)
- HTTP/1.1 请求解析
- 响应头格式化
- 静态文件服务(sendfile)
- 目录浏览
- Range 请求
- MIME 类型识别
- 多线程 M:N 调度
- 命令行参数
- 优雅关闭
Phase 2 — 健壮性(已完成)
- HTTP 缓存(ETag / Last-Modified / If-None-Match)
- Gzip / Brotli 压缩
- 完整的单元测试框架
- 压力测试 + 性能基准
- 连接超时管理(空闲连接自动清理)
- 请求体解析(POST 支持)
Phase 3 — 扩展(已完成)
- 配置文件支持(JSON)
- 虚拟主机 / 多站点
- 反向代理支持
- HTTPS / TLS
- HTTP/2
- h2c 明文升级
- WebSocket 支持
- 中间件机制(CORS / Basic Auth / Rate Limit)
- 插件系统(动态加载 + 热重载)
- 健康检查端点
- 主动健康检查
- Prometheus 指标
- SIGHUP 配置热重载
Phase 4 — 生态(未来方向)
- HTTP/3 (QUIC)
- 分布式负载均衡
- gRPC 支持
- 更多内置中间件
当前状态
- 编译状态:零警告,全部通过
- 单元测试:190 个全部通过 ✓(21 + 17 + 35 + 10 + 12 + 31 + 17 + 35 + 12)
- 集成测试:109 项全部通过 ✓
- 代码覆盖率:核心模块覆盖完整
- 文档状态:README 完整,API 文档齐全
- 项目阶段:维护模式(所有计划功能已完成)
待办池(已完成清空)
所有计划内功能已完成。项目进入维护阶段。
最近行动记录
-
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.3(OpenSSL 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 文件上传
- Windows(MinGW/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: 项目初始化
- 创建仓库,核心模块全部实现
- 添加示例首页和基本文档