Releases
v0.5.3
Compare
Sorry, something went wrong.
No results found
RustMusic v0.5.3
修复
桌面歌词卡「纯音乐,请欣赏」 :桌面歌词窗口启动时握手先于监听注册,
主窗口补推的歌词帧在注册完成前到达而丢失——窗口(重)打开时歌词已就绪的
场景(在线字幕/缓存歌词秒回时最常见)整首歌都不显示歌词。现改为监听
注册完成后再握手,补推必然送达
重构:整体结构模块化(行为零变化)
后端:commands.rs(3152 行 / 130 个命令)按业务域拆为 13 个子模块;
engine.rs(1411 行)拆为播放核心 / 输出设备 / WASAPI 独占 / 在线缓存
四块;main.rs 拆出 WebView 挂起、托盘、监控循环;对外命令名称与
注册路径不变
前端:store.ts(2708 行)按领域切为 zustand slices(播放队列 / 在线
音源 / 歌单 / 设置 / UI);两个在线音源大视图拆出弹窗、右键菜单、
行组件等 9 个子组件
引擎句柄去掉多余的 Mutex 包装:Engine 内部本就以细粒度锁 + 原子量
管理状态,命令层克隆句柄后在锁外操作,不存在全局串行点
性能:阻塞操作全部移出异步运行时
在线音源的搜索 / 取链 / 扫码轮询 / 歌单导入 / 下载等约 50 个命令此前直接在
tokio worker 线程上执行同步网络调用,并发请求一多整个运行时会卡顿;现在
统一放到专用阻塞线程池执行,UI 与其他命令不再被网络操作拖住
拖拽导入、皮肤图压缩的图片解码、封面取色同步网络同样处理
性能:数据库写入优化
扫描入库由逐条独立事务改为每批单事务提交,fsync 开销降一个数量级,
大库扫描更快、与 UI 查询的互相干扰更小
新库启用 synchronous = NORMAL(WAL 推荐档位)与 busy_timeout 兜底
维护
tauri / ureq / keyring 等关键依赖锁到 minor 版本,CI 启用 --locked,
依赖变更必须显式评审
You can’t perform that action at this time.