主要更新内容
- JS 运行时迁移至 MoeJS:插件引擎底层从
dop251/goja+goja_nodejs全面切换为Calcium-Ion/moejs,涉及插件路由、Hook、RPC、定时任务、通知通道及所有 Node.js 兼容模块(fs、http、crypto、fetch、child_process、events、console 等)的适配重写。 - 插件 WebSocket 监听:新增
route_websocket.go,插件可通过req.upgradeWebSocket()在 HTTP 路由中升级并处理 WebSocket 连接,支持帧队列、关闭握手和运行时资源生命周期管理。 - 插件内建对象隔离与可修改:每个插件运行时拥有独立的内建对象副本,插件可修改自身内建对象(如
Reflect.decorate),且不会泄漏到其他插件实例。 - 统一指标查询引擎:新增
internal/metricstore/query.go,支持精确采样、自适应降采样、最新值查询三种模式,提供PointBudget点数预算和RecordQueryOptions指标选择,避免全量加载后再裁剪。 - Ping 汇总聚合:新增
database/tasks/ping_summary.go,单次遍历同时计算各客户端和各任务的丢包率、延迟分位数(P50/P99)等统计,供旧版与新版 Ping RPC 共用。 - PostgreSQL / MySQL 兼容:新功能(查询引擎、投影、采样)在 pgsql 和 mysql 驱动下均可正常工作。
- Node.js Buffer 模块:新增
pkg/jsruntime/buffer,基于原生 TypedArray 实现Buffer类,支持 hex/base64/utf16le 等编码及大端/小端读写。
Bug修复
- Ping 队列容量独立:Ping 记录写入队列从与报告队列共享 512 容量改为独立的 4096 容量,避免高并发下 Ping 记录因队列满而被丢弃(PR #695)。
其他
- 数据库层(accounts、sessions、clients、tasks、oauth)代码简化,去除冗余错误处理和注释。
- Store 迁移与 Restructure 流程重构,提取
openWithoutMigration辅助函数,StopStoreMigrationForShutdown提升为公开 API。 - 移除已废弃的测试文件
cmd/flags/config_test.go和internal/sqlitetune/connector_test.go。 - README 新增 MooProxy 赞助商条目。
- 新增
pkg/jsruntime/loop事件循环封装和pkg/jsruntime/native原生桥接工具包。
What's Changed
- fix(metricstore): give the ping queue its own capacity by @cristianchiriac in #695
Commits
- Update payment options in README (5006f55) @Akizon77
- Update README_zh-cn.md (4b24f1e) @Akizon77
- fix(metricstore): give the ping queue its own capacity (fa5a04d) @cristianchiriac
- 让opus5.5 简化、优化1下代码 (b38b0b2) @Akizon77
- 优化单次查询性能 (3cf8445) @Akizon77
- 查询时对象分配数量可以少一点 (48af63c) @Akizon77
- 感谢新的金主 MooProxy (dc7f4cb) @Akizon77
- 感谢新的金主 MooProxy (7468dcb) @Akizon77
- Merge main into PR 695 and remove added queue test (b704267) @Akizon77
- Merge pull request #695 from cristianchiriac/fix-ping-queue-size (528cea2) @Akizon77
- JS运行时换成moejs (d50cc0a) @Akizon77
- 允许插件修改自己的内建对象 (c24c4b9) @Akizon77
- 优化查询性能 (d5689ef) @Akizon77
- 优化查询的CPU性能,但是稍微牺牲一点点内存 (e30b9fd) @Akizon77
- 支持了新功能在pgsql和mysql的兼容 (70bbcea) @Akizon77
- 让插件支持监听ws (9e5f9a3) @Akizon77
New Contributors
- @cristianchiriac made their first contribution in #695
Full Changelog: 1.6.0...Snapshot-2610241641