From 05cc458440d46c2318efebf7ebe595e36fed0889 Mon Sep 17 00:00:00 2001 From: xfy911 Date: Sat, 6 Jun 2026 03:14:31 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E6=9B=B4=E6=96=B0=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=EF=BC=8C=E6=A0=87=E8=AE=B0=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cocoon-plan.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.cocoon-plan.md b/.cocoon-plan.md index efb36be..7bdc9f4 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -80,12 +80,14 @@ ## 待办池 -1. **[高] 插件系统** — 动态加载 .so/.dll 扩展,中间件注册 API 扩展 -2. **[中] HTTP/2 压缩** — 接入 gzip/brotli 到 HTTP/2 响应 +1. **[高] 插件系统** — ✅ 2026-06-06 已完成 MVP:dlopen 动态加载、中间件注册、示例插件 + - 后续扩展:插件配置文件数组支持、插件热重载、插件间通信 +2. **[中] HTTP/2 压缩** — ✅ 已实现(gzip/brotli 在 HTTP/2 响应中已生效) 3. **[低] Doxygen 中文注释** — tls.c, config.c, multipart.c, access_log.c, main.c, websocket.c 等模块待补充 4. **[低] 性能优化** — 连接池复用、零拷贝优化、压缩预缓存 5. **[低] WebSocket 单元测试** — 为广播/注册表 API 添加 C 单元测试 6. **[低] 配置文件 JSON Schema 验证** — 配置文件格式校验 +7. **[低] 插件热重载** — 运行时重新加载插件(SIGUSR1 触发) ## Windows 兼容性实现详情 @@ -108,6 +110,20 @@ ## 最近行动记录 +- 2026-06-06: **本轮行动 — 实现动态插件系统(Phase 4 MVP)** + - `plugin.h` / `plugin.c`:基于 dlopen/dlsym 的插件加载器,最多8个插件,逆序卸载 + - 插件接口:`cocoon_plugin_init()`(初始化)、`cocoon_plugin_shutdown()`(清理)、`cocoon_plugin_version()`(版本) + - 插件通过 `cocoon_middleware_register()` 注册中间件参与请求处理 + - 命令行:`--plugin ` 可多次指定 + - 配置文件:`plugins` 字段支持字符串路径(单插件,数组支持待扩展) + - `server.c`:在 `server_create()` 中加载插件,`server_destroy()` 中逆序卸载 + - `plugins/hello.c`:示例插件,演示中间件注册/注销/版本返回 + - `Makefile`:添加 `plugin.c` 和 `-ldl` 链接选项 + - `cocoon.json`:示例配置添加 `"plugins": "plugins/hello.so"` + - `.gitignore`:排除 `plugins/*.so` 和 `www/uploads/` + - 集成测试:68项全部通过(新增插件加载+日志验证2项) + - 单元测试:127个全部通过 + - 编译零警告,推送到 main(952cc66) - 2026-06-06: **本轮行动 — 中间件框架(CORS / Basic Auth / Rate Limit)** - `middleware.c` / `middleware.h`:注册表(最多 16 个)+ 链式执行 + 短路机制 - CORS 中间件:OPTIONS 预检 204 + 跨域响应头(Access-Control-Allow-Origin/Methods/Headers)