Music Player:Rust 音乐服务器与播放器
用 Rust 编写的可扩展音乐守护进程、服务器与客户端,单二进制、零依赖,自带终端、Web 与桌面界面。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.4.7
- 平台
- macOS、Linux
详细介绍
项目简介
Music Player 是一个用 Rust 编写的可扩展音乐播放守护进程、服务器和客户端,定位类似 mpd 或 Mopidy。它是一个单二进制、零依赖的程序。
音频解码与播放由 Rockbox 固件的播放引擎驱动(通过 rockbox-playback、rockbox-dsp、rockbox-metadata 三个 crate),提供 40+ 音频格式支持、接近无缝播放的缓冲、EQ / 交叉淡入淡出 / ReplayGain 等 DSP 处理,以及原生 HTTP 流式传输。守护进程会把音乐库索引到 SQLite(使用 FTS5 全文搜索),再通过 gRPC、GraphQL 和 Web UI 对外提供,可以从终端 UI、浏览器或桌面应用进行控制。

主要功能
- Rockbox 播放引擎:支持 MP3、FLAC、Vorbis、Opus、MP4/AAC/ALAC、WavPack、APE、WMA、chiptunes 等 40+ 格式,带 EQ 预设、交叉淡入淡出与 ReplayGain 的 DSP 链。
- 即时全文搜索:基于 SQLite FTS5,由数据库触发器自动保持同步。
- 终端 UI(ratatui):fzf 风格模糊查找、neovim 风格状态栏,按
?呼出帮助浮层。 - Web UI(React 18 + Tailwind v4 + HeroUI):与 Slint 桌面应用共用皮肤、字体和组件,可响应到手机尺寸。
- 桌面应用:可换肤的 Slint 应用,内嵌守护进程。
- gRPC + GraphQL API(tonic 0.14,启用 grpc-web),方便自行开发客户端。
- 云端音乐库:浏览并串流 Subsonic / Navidrome 与 Jellyfin 服务器上的内容。
- 投送播放:支持 Chromecast 与 UPnP/DLNA 渲染器,也能控制另一个 music-player 守护进程。
- Rocksky 记录播放:把收听记录 scrobble 到基于 AT Protocol 的 Rocksky。
- 网络电台:搜索浏览 Radio Browser 与 TuneIn 上的数千个电台,支持收藏和全屏正在播放界面。
- AT Protocol 同步:电台收藏与喜欢的歌曲从 atproto 仓库恢复、写回 PDS,并通过 Jetstream 保持实时同步。
- 声学指纹(Chromaprint):按音频内容识别文件,标签混乱的文件可借助 AcoustID / MusicBrainz 按 Picard 的方式重新命名。
- 收听分析(DuckDB):导入多年的 Spotify、Last.fm、Rocksky 历史记录并跨来源去重,再查询会话、跳过、口味漂移等。
- 灵活音频输出:系统设备(cpal)、stdout、FIFO、Unix 或 TCP socket。

安装与使用
用 curl 安装预编译二进制:
curl -fsSL https://raw.githubusercontent.com/tsirysndr/music-player/master/install.sh | sh
用 npm 安装:
npm install -g @tsiry/music-player
用 Homebrew(macOS / Linux):
brew install tsirysndr/tap/musicplayer
macOS 上桌面应用还可以作为 cask 安装:
brew install --cask tsirysndr/tap/musicplayer
其他分发方式包括 Debian/Ubuntu 的 APT 源、Fedora/RHEL 系的 DNF 源、Arch 的 AUR(music-player-bin)以及 Nix,也可以直接从 Releases 下载对应平台的包。也可以从源码编译:先准备 protobuf 等依赖,运行 ./scripts/fetch-duckdb.sh,构建 webui/musicplayer 后执行 cargo install --path .。
注意事项
- macOS 桌面应用未做代码签名与公证,首次启动会被 Gatekeeper 拦截:先打开一次,再到「系统设置 → 隐私与安全性」,在相关提示旁点击「仍要打开」,并在随后对话框中确认,之后 macOS 会记住该选择。
- Debian 与 RPM 包同时包含
music-player和桌面应用music-player-desktop,可从应用菜单启动或直接运行music-player-desktop。 - 项目以 MIT 许可证开源。
- 若想了解基于 Rockbox 固件的另一种守护进程实现,作者另有一个项目 rockboxd。
本作品整理自 GitHub 开源项目 tsirysndr/music-player,原作者 @tsirysndr,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.4.7当前版本
Slint 桌面应用新增沉浸式专辑 Cover Flow 视图:按 c 打开,方向键或滚轮浏览,Enter 查看专辑详情,Esc 退出;支持按 / 实时搜索专辑,并优化滚动动效、封面渲染缓存与倒影效果。
- v0.4.6
修复均衡器:第 0、9 段搁架滤波器改用各自的截止频率与 Q 值(64 Hz 与 12 kHz,Q 0.7),低频滑块增益明显增强;bass/treble 现在正确提升本端频段,而不再衰减其余频谱。
评论