|
|
e3e5b1fe83
|
feat(lua): 实现共享字典 API (ngx.shared.DICT)
添加共享内存字典实现,支持并发安全的 key-value 存储:
- SharedDictManager: 管理多个命名的 SharedDict 实例
- SharedDict: 带 LRU 汰出策略的内存字典
- 支持 set/get/add/incr/size/free_space 操作
- 支持带 TTL 的过期机制
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-12 11:21:17 +08:00 |
|
|
|
bfab449241
|
feat(lua): 实现 Lua 中间件系统
添加可配置的 Lua 中间件实现,支持:
- 多执行阶段(rewrite、access、content、header_filter、body_filter、log)
- 脚本路径配置和超时控制
- 中间件启用/禁用开关
- 配置文件热加载
- 完整的单元测试和性能基准测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 13:34:34 +08:00 |
|
|
|
b31733f233
|
refactor(lua): 简化 ngx API 表注册流程
将 ngx 表的创建和全局设置提前,避免各 API 注册时重复检查表是否存在。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 13:34:26 +08:00 |
|
|
|
6b9df86217
|
feat(lua): 扩展 ngx.req API 并集成所有 ngx API 到沙箱
扩展 API: set_uri, set_uri_args, get_headers, set_header, clear_header, get_body_data, read_body
在 coroutine.SetupSandbox() 中统一注册 ngx.req/resp/var/ctx/log/socket API
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 12:17:35 +08:00 |
|
|
|
86e5b0e6f1
|
feat(lua): 实现 ngx.log API 和输出控制
提供日志输出、响应输出、HTTP 状态码常量
API: ngx.log, ngx.say, ngx.print, ngx.flush, ngx.exit, ngx.redirect
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 12:17:35 +08:00 |
|
|
|
51061d68ff
|
feat(lua): 实现 ngx.var API
通过元表实现动态变量读写,支持 nginx 内置变量和自定义变量
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 12:17:35 +08:00 |
|
|
|
d021b0e9fd
|
feat(lua): 实现 ngx.ctx API
提供请求级上下文存储,每请求独立的 Lua table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 12:17:34 +08:00 |
|
|
|
797c4b0a26
|
feat(lua): 实现 ngx.resp API
提供响应操作能力:get_status, set_status, get_headers, set_header, clear_header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-11 12:17:34 +08:00 |
|
|
|
8bac2fdcfa
|
feat(lua): 实现 Cosocket API 和响应拦截器
- ngx.req API 双层边界验证原型
- TCP Cosocket API (connect/send/receive/close)
- Cosocket 状态管理器和连接池
- ResponseInterceptor 响应拦截器
- 完整单元测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 18:30:28 +08:00 |
|
|
|
7156bbc82f
|
refactor(lua): 改进代码风格和文档注释
- 为 LuaEngine/LuaContext/LuaCoroutine 添加命名说明注释
- 为 Phase 常量添加文档注释
- 规范 import 排序顺序
- 处理 Write 返回值避免 lint 警告
- 修复文件末尾换行符
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 16:55:38 +08:00 |
|
|
|
aa05d6b965
|
feat(lua): 在沙箱中阻止危险的协程创建函数
添加 setupSecureCoroutineLib 函数,在沙箱环境中拦截 coroutine.create/wrap/resume/running,
仅保留 yield/status 安全函数。防止脚本创建不受控制的协程。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 14:56:13 +08:00 |
|
|
|
7a66e350f0
|
feat(lua): 添加 Lua 脚本嵌入支持
- 基于 gopher-lua 实现类似 OpenResty 的脚本嵌入能力
- LuaEngine: server 级单 LState + 请求级临时协程
- LuaContext: 请求上下文,变量存储和阶段管理
- LuaCoroutine: 沙箱隔离,Yield/Resume 循环,执行超时
- CodeCache: 字节码缓存,LRU 淘汰 + TTL 过期
- 新增 testify 用于测试断言
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 14:19:03 +08:00 |
|