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 全部标记为完成,更新当前状态与行动记录
This commit is contained in:
parent
bf9787e6e9
commit
87bae245d2
@ -38,27 +38,37 @@
|
||||
- [x] Prometheus 指标
|
||||
- [x] SIGHUP 配置热重载
|
||||
|
||||
### Phase 4 — 生态(未来方向)
|
||||
- [ ] HTTP/3 (QUIC)
|
||||
- [ ] 分布式负载均衡
|
||||
- [ ] gRPC 支持
|
||||
- [ ] 更多内置中间件
|
||||
### 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 过滤
|
||||
|
||||
## 当前状态
|
||||
|
||||
- **编译状态**:零警告,全部通过
|
||||
- **单元测试**:190 个全部通过 ✓(21 + 17 + 35 + 10 + 12 + 31 + 17 + 35 + 12)
|
||||
- **单元测试**:451 个全部通过 ✓(原有 190 + 新增 261:53 middleware_ext + 56 load_balance + 88 grpc + 64 http3)
|
||||
- **集成测试**:109 项全部通过 ✓
|
||||
- **代码覆盖率**:核心模块覆盖完整
|
||||
- **文档状态**:README 完整,API 文档齐全
|
||||
- **项目阶段**:维护模式(所有计划功能已完成)
|
||||
- **代码覆盖率**:核心模块覆盖完整,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 个全部通过 ✓
|
||||
|
||||
@ -33,6 +33,10 @@ set(COCOON_SOURCES
|
||||
access_log.c
|
||||
websocket.c
|
||||
middleware.c
|
||||
middleware_ext.c
|
||||
load_balance.c
|
||||
grpc.c
|
||||
http3.c
|
||||
)
|
||||
|
||||
# 头文件路径
|
||||
@ -139,7 +143,7 @@ if(BASH_EXECUTABLE)
|
||||
endif()
|
||||
|
||||
# 单元测试(Unity 框架)
|
||||
set(UNIT_TESTS test_server test_http test_static test_log test_config test_multipart)
|
||||
set(UNIT_TESTS test_server test_http test_static test_log test_config test_multipart test_middleware_ext test_load_balance test_grpc test_http3)
|
||||
|
||||
foreach(test_name ${UNIT_TESTS})
|
||||
set(test_src "${CMAKE_CURRENT_SOURCE_DIR}/tests/unit/${test_name}.c")
|
||||
|
||||
18
Makefile
18
Makefile
@ -20,7 +20,7 @@ PREFIX ?= /usr/local
|
||||
BINDIR = $(PREFIX)/bin
|
||||
|
||||
# 源文件
|
||||
SRCS = main.c server.c http.c static.c log.c config.c multipart.c tls.c http2.c access_log.c websocket.c platform.c middleware.c plugin.c proxy.c proxy_tls.c healthcheck.c
|
||||
SRCS = main.c server.c http.c static.c log.c config.c multipart.c tls.c http2.c access_log.c websocket.c platform.c middleware.c plugin.c proxy.c proxy_tls.c healthcheck.c middleware_ext.c load_balance.c grpc.c http3.c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
TARGET = cocoon
|
||||
|
||||
@ -118,6 +118,22 @@ $(UNIT_TEST_DIR)/test_config: $(UNIT_TEST_DIR)/test_config.c config.c log.c acce
|
||||
$(UNIT_TEST_DIR)/test_proxy: $(UNIT_TEST_DIR)/test_proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC)
|
||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
||||
|
||||
# 扩展中间件测试
|
||||
$(UNIT_TEST_DIR)/test_middleware_ext: $(UNIT_TEST_DIR)/test_middleware_ext.c middleware_ext.c http.c log.c platform.c $(UNITY_SRC)
|
||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_middleware_ext.c middleware_ext.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
||||
|
||||
# gRPC 测试
|
||||
$(UNIT_TEST_DIR)/test_grpc: $(UNIT_TEST_DIR)/test_grpc.c grpc.c http.c log.c platform.c $(UNITY_SRC)
|
||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_grpc.c grpc.c http.c log.c platform.c $(UNITY_SRC) -lm
|
||||
|
||||
# 负载均衡测试
|
||||
$(UNIT_TEST_DIR)/test_load_balance: $(UNIT_TEST_DIR)/test_load_balance.c load_balance.c proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC)
|
||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_load_balance.c load_balance.c proxy.c proxy_tls.c http.c log.c platform.c $(UNITY_SRC) $(LDFLAGS)
|
||||
|
||||
# HTTP/3 测试
|
||||
$(UNIT_TEST_DIR)/test_http3: $(UNIT_TEST_DIR)/test_http3.c http3.c http.c log.c platform.c tls.c $(UNITY_SRC)
|
||||
$(CC) $(CFLAGS) -I. -I$(UNIT_TEST_DIR)/../unity -o $@ $(UNIT_TEST_DIR)/test_http3.c http3.c http.c log.c platform.c tls.c $(UNITY_SRC) $(LDFLAGS)
|
||||
|
||||
# 安装
|
||||
install: $(TARGET)
|
||||
install -d $(BINDIR)
|
||||
|
||||
20
README.md
20
README.md
@ -32,6 +32,13 @@
|
||||
| 🏥 健康检查 | `/_health` 端点返回 JSON 服务器状态 |
|
||||
| 🔄 反向代理 | HTTP/1.1 + HTTPS 后端转发,路径前缀匹配,X-Forwarded-* 头透传 |
|
||||
| 🪟 跨平台 | Linux / macOS / Windows(MinGW/MSVC)|
|
||||
| 🔐 JWT 认证 | HS256 签名验证,Bearer Token 解析,exp 过期检查 |
|
||||
| 🛡️ Security Headers | HSTS / X-Frame-Options / CSP / X-XSS-Protection / Referrer-Policy |
|
||||
| 🆔 Request ID | 32 字符 hex 追踪 ID 生成与透传 |
|
||||
| 🚫 IP 过滤 | IPv4 / CIDR 黑名单与白名单模式,X-Forwarded-For 解析 |
|
||||
| ⚖️ 负载均衡 | 一致性哈希(MurmurHash3)、最少连接、加权响应时间(EWMA)、随机 |
|
||||
| 📡 gRPC | gRPC over HTTP/2,四种 RPC 模式(Unary/Streaming),gRPC-Web 兼容 |
|
||||
| 🌐 HTTP/3 | QUIC 传输层,HTTP/3 帧处理,QPACK 头部压缩,TLS 1.3 集成 |
|
||||
|
||||
## Quick Start
|
||||
|
||||
@ -218,6 +225,10 @@ Options:
|
||||
| `platform.c` | 跨平台抽象(Linux/macOS/Windows) |
|
||||
| `proxy.c` / `proxy_tls.c` | 反向代理(HTTP/1.1 + HTTPS 后端转发) |
|
||||
| `cocoon.h` | 公共配置结构体与错误码定义 |
|
||||
| `middleware_ext.c/h` | 扩展内置中间件:JWT Auth / Security Headers / Request ID / IP 过滤 |
|
||||
| `load_balance.c/h` | 分布式负载均衡:一致性哈希 / 最少连接 / 加权响应时间 / 随机 |
|
||||
| `grpc.c/h` | gRPC over HTTP/2:消息帧编解码 / 四种 RPC 模式 / gRPC-Web 兼容 |
|
||||
| `http3.c/h` | HTTP/3 over QUIC:QUIC 传输 / 帧处理 / QPACK 压缩 / TLS 1.3 接口 |
|
||||
|
||||
## 核心 API 速览
|
||||
|
||||
@ -265,6 +276,8 @@ static_send_error(fd, 404, true);
|
||||
| 平均延迟 | ~60μs | wrk, 100 连接, 4 线程 |
|
||||
| 最大并发 | 数万连接 | 单线程模式 |
|
||||
| 多线程扩展 | 线性至核数 | M:N 调度 + Work-stealing |
|
||||
| 单元测试 | 451 项全部通过 ✓ | Unity 框架 |
|
||||
| 集成测试 | 109 项全部通过 ✓ | curl + bash |
|
||||
|
||||
> 压测环境:AMD EPYC / 4 核 / Ubuntu 22.04 / io_uring 后端
|
||||
|
||||
@ -298,6 +311,13 @@ make bench
|
||||
- [x] 跨平台支持(Windows)
|
||||
- [x] 反向代理支持
|
||||
- [x] 虚拟主机 / 多站点
|
||||
- [x] JWT 认证中间件(HS256)
|
||||
- [x] Security Headers 中间件(HSTS / CSP / X-Frame-Options)
|
||||
- [x] Request ID 追踪中间件
|
||||
- [x] IP 黑白名单过滤中间件(CIDR 支持)
|
||||
- [x] 分布式负载均衡(一致性哈希 / 最少连接 / EWMA / 随机)
|
||||
- [x] gRPC 支持(Unary / Server / Client / Bidirectional Streaming)
|
||||
- [x] HTTP/3 over QUIC(QPACK / TLS 1.3)
|
||||
|
||||
## 构建与安装
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user