cocoon/.cocoon-plan.md
xfy911 8f9d420447 docs(plan): 更新发展规划,记录本轮测试扩展
- 单元测试总数:125 个(server 从 5→17)
- 更新待办池优先级和状态
2026-06-04 09:04:54 +08:00

4.1 KiB
Raw Blame History

Cocoon 发展规划(自主维护)

此文件由 cron 任务每3小时更新记录项目状态与下一步计划。

路线图

Phase 1 — 核心稳定(当前)

  • HTTP/1.1 请求解析
  • 响应头格式化
  • 静态文件服务sendfile
  • 目录浏览
  • Range 请求
  • MIME 类型识别
  • 多线程 M:N 调度
  • 命令行参数
  • 优雅关闭

Phase 2 — 健壮性

  • HTTP 缓存ETag / Last-Modified / If-None-Match 2026-06-03
  • 连接超时管理(空闲连接自动清理) 2026-06-03
  • 最大并发连接数限制 2026-06-03
  • 分级日志系统error / warn / info / debug 2026-06-03
  • Gzip 压缩 2026-06-03已接入响应流程
  • Brotli 压缩 2026-06-04优先于 Gzip
  • 集成测试 suite37 项 curl/bash 测试全部通过) 2026-06-04
  • 性能基准wrk: ~16.2K RPS / ~60μs 延迟) 2026-06-03
  • 请求体解析POST 支持) 2026-06-03
    • Content-Length 读取
    • JSON / form-urlencoded 回显
    • multipart/form-data 文件上传(保存到 root_dir/uploads/ 2026-06-04
  • C 语言单元测试框架 2026-06-03Unity 框架125 个测试全部通过)

Phase 3 — 扩展

  • 配置文件支持 — JSON 配置替代纯命令行 2026-06-04
  • Brotli 压缩 — 比 gzip 更高压缩率 2026-06-04
  • HTTPS / TLS
  • HTTP/2
  • Windows 兼容性

Phase 4 — 生态

  • WebSocket 支持
  • 中间件机制
  • 插件系统

当前状态

  • 编译通过,零警告(除 coco 子模块的 linker .note.GNU-stack 提示)
  • 37 项集成测试全部通过GET/HEAD/POST/404/Range/304/gzip/brotli/MIME/目录浏览/路径防护/文件上传)
  • 125 个单元测试全部通过Unity 框架server 测试 17 个)
  • 压测数据wrk -t4 -c100 -d10s → 16,179 RPS平均延迟 59.86μs
  • POST 支持JSON 和 form-urlencoded 回显multipart 文件上传Content-Length 解析8MB 上限
  • 配置文件支持JSON 格式8 个字段,命令行参数可覆盖
  • README / Makefile 已更新

待办池

  1. [高] HTTPS / TLS — 生产部署必备
  2. [高] HTTP/2 多路复用 — 长期演进方向
  3. [中] Windows 兼容性 — 平台抽象层platform.h / platform.c
  4. [中] Doxygen 中文注释 — 所有模块的公共 API 需要完整文档
  5. [低] 检查远程更新内容 — 上游有 new commits需 review 9041d8d

最近行动记录

  • 2026-06-04: 本轮行动 — 修复拼写错误 + 扩展 server 单元测试
    • cocoon.hCOCOONForbiddenCOCOON_FORBIDDEN(统一下划线命名)
    • test_server.c:从 5 个测试扩展到 17 个
      • 空 root_dir 边界测试
      • port=0系统分配和 port=65535 边界测试
      • 多线程配置 + workers=0 自动检测测试
      • timeout / max_connections 配置测试
      • gzip/brotli 压缩标志测试
      • stop → destroy 生命周期测试
      • 多实例创建测试
      • server_start(NULL) 参数校验测试
    • 单元测试125 个全部通过集成测试37 项全部通过
    • 推送到 mainrebase 了远程更新 9041d8d
  • 2026-06-04: Brotli 压缩支持(优先于 Gzip
  • 2026-06-04: 配置文件支持 + gzip_enabled 控制 + README 修正
  • 2026-06-04: multipart 文件上传
  • 2026-06-03: 项目初始化,核心模块全部实现
  • 2026-06-03: 添加缓存协商ETag + Last-Modified + 304修复编译警告
  • 2026-06-03: 添加连接空闲超时管理 + 最大并发限制 + 分级日志系统
  • 2026-06-03: 创建集成测试套件 + 性能基准 + 更新文档
  • 2026-06-03: 添加 POST 请求体解析支持30 项测试全部通过README 更新
  • 2026-06-03: 本轮行动 — 单元测试框架
    • 引入 Unity 测试框架ThrowTheSwitch
    • 创建 tests/unit/test_http.c35 个测试)
    • 创建 tests/unit/test_static.c31 个测试)
    • 更新 Makefilemake unit-test 一键编译运行
    • 66 个测试全部通过,集成测试保持 30 项通过
    • 推送到 main