v2.3.0-beta.4 (Build 26F08)
Pre-release-
YAML 存储 API 扩展
- 新增
yaml_set_str/yaml_get_str:强制字符串类型存储与读取 - 新增
yaml_get_all:读取整个 YAML 文件内容 - 新增
yaml_has:检查指定路径是否存在 - 新增
yaml_delete/yaml_clear/yaml_delete_file:路径删除、文件清空、文件删除 - 新增
yaml_keys:列出指定路径下的所有 key - 新增
yaml_len:返回数组长度或对象 key 数量
- 新增
-
YAML 路径语法增强
yaml_get/yaml_set支持数组下标语法[N]yaml_get支持两阶段查询:buffer 不足时返回所需字节数(含 NUL)
-
窗口事件拦截
- drag-drop
Enter事件支持同步拦截,宿主返回非空指针拒绝拖拽 - drag-drop
Drop事件支持同步消费,宿主返回非空指针表示已处理 Over/Leave保持异步通知- 无回调注册时行为不变(兼容现有逻辑)
- drag-drop
-
自定义窗口拖动区
- 新增 HTML 属性
jade-region-drag/jade-region-no-drag,不依赖 CSS 即可拖动窗口 jade-region-drag作用于容器及其全部后代;子元素加jade-region-no-drag排除(按钮、输入框等可点击元素)- 单击拖动移动窗口、双击最大化/还原;支持系统贴边(Aero Snap),窗口最大化时拖动自动还原
- 右键不弹出系统标题栏菜单(区别于
-webkit-app-region: drag) - 与
-webkit-app-region并存、互不影响
- 新增 HTML 属性
-
IPC 通信优化
invoke与广播消息共用发送路径,减少重复封装- 前端消息入口收敛到统一 dispatcher,取消多入口分发
- 高频小事件合并发送:微任务批处理 flush,减少调度开销
- 外部
jade.invoke/jade.on调用方式不变,旧消息形态继续兼容
-
NTP时间获取
- 新增
jade_ntp_nowAPI,获取当前网络时间戳(UTC毫秒),北京时间需+8H - 支持传入自定义 NTP 服务器地址;传
NULL/空串时回退到内置服务器列表 - 指定服务器时单次查询超时 3 秒,失败返回
-1(不回退内置列表)
- 新增
-
修复 YAML 中间节点覆盖问题:非映射且非空时返回
-2,不再覆盖 -
修复 YAML 序列化失败时清空文件的问题:失败返回
-1,不写盘 -
修复 YAML 非原子写入:改用临时文件 + rename,Windows 下增加重试
-
修复 YAML 无文件锁问题:使用
CreateFileW+LockFileEx -
修复 YAML CString NUL 截断问题:失败时返回
-1 -
修复无边框窗口(
borderless)最大化后客户区四边各溢出约 8px、顶部内容被裁掉的问题:WM_NCCALCSIZE在最大化时按 resize 边框尺寸内缩四边,使客户区正好等于工作区 -
yaml_get/yaml_set返回值新增负数错误码语义-1IO 错误 /-2类型不匹配 /-3目标已存在 /-4格式解析失败
-
yaml_set自动解析数值与布尔类型,yaml_set_num/yaml_set_bool合并到yaml_set -
迁移
serde_yaml→serde_yml -
jade_ntp_now签名变更:新增const char* ntp_server参数(ABI 变更,旧调用传NULL即保持原行为) -
拆分
src/ffi/c_api.rs(约 4300 行)为src/ffi/c_api/下的功能子模块(lifecycle / window / tray / dialog / yaml_store / system),对外导出的 C API 保持不变 -
build.rs头文件生成增强:按子模块扫描 FFI 函数、递归扫描事件名常量;修复 cbindgen 类型未变化时误判失败导致头文件无法刷新的问题 -
jade.invoke路径优化,预期提升 5% ~ 20% -
广播消息路径收敛,预期提升 20% ~ 60%
-
高频小事件合并发送,消息数减少约 50% ~ 90%
-
IPC 发送去掉整条消息克隆:小消息发送开销降低约 5%~15%;大载荷消息(≤253MB)拷贝与内存峰值降低约 50%
也收录于 2.2.4 -
事件分发减少分配:高频事件每次少一次回调列表克隆;多订阅者分发的序列化与分配由 K 次降为 1 次(订阅者越多收益越大)
也收录于 2.2.4 -
静态资源内容缓存:重复资产请求免去磁盘读取与 MIME 重算,单请求延迟降低约 70%~95%(视磁盘冷热)
-
媒体流分片去锁内克隆:HTTP Range 请求(视频/音频拖动)每分片不再在锁内克隆整条资源记录,改用共享句柄 + 原子计数,高频分片的元数据处理开销降低约 60%~85%
-
消息保活改为事件驱动:
run_message_loop取消 100ms 轮询,常驻 CPU 占用归零,退出即时响应 -
NTP 并行查询:内置服务器列表并发查询、先到先用,弱网/坏节点场景最坏耗时由约 24s 降到约 3~4s
-
NTP 时间戳健壮性:防御异常回包导致的时间戳计算下溢
-
YAML 与资源接口微优化:减少每次调用的重复系统调用、锁与字符串解析开销;资源 / 分批接口参数解析统一为轻量扫描,默认图标缓存命中缩短锁临界区
收益最明显的场景:多窗口广播、高频状态同步、拖拽类小消息、SPA 资产加载/刷新、媒体流分片、弱网或不可达 NTP 节点环境。
标注
也收录于 x.y.z的条目,表示同一改动已回合并到对应的维护版本,低版本用户升级后即可获得相同优化。\n\n---\n本版本的文档参考在 beta 目录中