跳到正文
发现
Music Player:Rust 音乐服务器与播放器
命令行工具效率工具

Music Player:Rust 音乐服务器与播放器

用 Rust 编写的可扩展音乐守护进程、服务器与客户端,单二进制、零依赖,自带终端、Web 与桌面界面。

admin
发布于 2026-10-28 · 更新于 2026-10-30
浏览
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 整理,以原仓库为准。

更新记录

  1. v0.4.7当前版本

    Slint 桌面应用新增沉浸式专辑 Cover Flow 视图:按 c 打开,方向键或滚轮浏览,Enter 查看专辑详情,Esc 退出;支持按 / 实时搜索专辑,并优化滚动动效、封面渲染缓存与倒影效果。

  2. v0.4.6

    修复均衡器:第 0、9 段搁架滤波器改用各自的截止频率与 Q 值(64 Hz 与 12 kHz,Q 0.7),低频滑块增益明显增强;bass/treble 现在正确提升本端频段,而不再衰减其余频谱。

评论