Quaver Music 的诞生
真爱音乐,尊重正版,音乐平台不易,该应用不提供盗版 QQ 音乐服务!
前言
不知道我哪个砖又把墙砌歪了,心血来潮想 Vibe Coding 一个 QQ 音乐客户端在 Linux 用。
这个博文代表项目启动公告吧!
为什么叫 Quaver?
Quaver,英语代表“八分音符”,𝅘𝅥𝅮,既是可以代表音乐的完美符号,又能关联到 QQ 音乐。这就是选择做 Quaver 为名字的原因。
契机
这个契机十分的……有趣?我一直是 QQ 音乐的用户,也用过 NCM 的第三方客户端,Spotify,Apple Music。
然而 QQ 音乐一直没有什么好用的第三方客户端,而同 TME 系的有 MoeKoe ,而转机是在 Lyrune。
一个挺好用的 Rust Q 音第三方客户端,但可惜 Rust 太重了,而且我 Rust 是真的菜。(是的,原作者实现的 CSD 确实比我自己想的上面扩展 CSD 好很多)
所以使用 Electron,对接入 NodeJS 的 API 而言也很方便,开发也很快,也可以避免我孱弱的 Rust 开发,与此同时,后端我也能玩 C++ 这一个我更熟悉的编程语言。故此项目诞生,现正在 Prototype 阶段,逐步新增功能。
为什么使用 Electron
答案很简单,出效果快,各大桌面也能用,而且也不会考虑 Rust 带来的影响。
先说说我率先过掉的开发技术栈:
- GTK:跨平台弱,性能弱,且本人对 GNOME 基金会存在一定偏见
- Tauri:我用 WebKitGTK 就是坐牢的,直接不考虑
- iced:还是发展初期,且 Rust 相关知识还是比较薄弱。
然后在这两个纠结:
- Qt:还可以,但是 QML 出效果比较慢,但胜在轻量,只不过我之前开发 Qt 都是 Widget,QML 没怎么摸过。
- Electron:对接入 NodeJS 的 API 而言很方便,开发迭代很快,也很适合 Vibe Coding,同时可以避免我孱弱的 Rust 开发,且后端我也能玩 C++ 等,不过最初想法是用 Astro 的,但想想看,还是更为标准的 Vite 吧。
目标
跟之前的项目 Cipher Tools 一样,这个项目依旧会给每个版本加个代号,目前还是 Prototype,代号为 “Neon”,取自无畏契约角色霓虹,版本号为语义化版本号结构 v+ “x.y.z” 开发代号均出自《无畏契约》的特工 + 《绝区零》的角色,而副分支开发代号取自《鸣潮》和《崩坏:星穹铁道》角色,且副分支开发代号,在未进入正式版开发/收尾阶段,永远都是 Prototype。
x:每一个大版本均为 10 个小版本(典型情况),如遇到更改技术栈/本体出现大改情况除外 y:功能更新版本 z:修补版本号
| 版本号 | 主分支开发代号 | 副分支开发代号 | 隶属开发阶段 |
|---|---|---|---|
| v0.x.x | Neon | Prototype | Prototype |
| v1.0.0 | Ellen | Chisa | Stable |
| v1.0.x | Ellen | Chisa - PatchX | Stable - PatchX* |
| v1.1.0 | Ellen | Cyrene | Stable - FEP1* |
PatchX:修复包版本
FEP:功能启用包
罗马不是一天建成的,为了防止墙被砌歪,在 Prototype 阶段,将完成以下工作
- 基础 UI 建设(播放页主页)
- 使用 WebAPI,完成基础的后端数据获取(换成 Python API 了)
- 打包 CI
- 清理 Bugs
现在的基础 UI 设计使用了 Pixso,感谢万兴开发的 Pixso,我大学时期就在用的 UI/UX 设计工具(虽然当时是上课)!



- MPRIS 支持
- XDG Desktop Portal Inhibit 协议与 Logind 直连睡眠抑制器实现
- 使用 PythonAPI 完善后端功能
- 清理 Bugs
并在未来的 FEP 版本中,加入呼声较高的功能,或未完成实现的功能。
后日谈
这目前是个完全的 Vibe Coding 项目,加上自己的设计,我个人很喜欢部分 Mac 的设计,所以味道有点重很正常。
希望这个项目不被 DMCA,也希望能成为多数 Linux QQ 音乐用户的首选软件。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!


