A lightweight Windows player for Navidrome and your own music.
Streams and automatically caches music from Navidrome for offline listening.
English · Русский
Download · Features · Quick start · Build ·
Data · Reference (RU)
BEAT is a lightweight native Windows application written in Rust. Connect Navidrome or add your music folders. Downloaded tracks remain ordinary files; local playback works without a server.
Screenshots use demo track names and original placeholder artwork. No audio files are included. Both themes support EN/RU.
| What BEAT does | |
|---|---|
| Lightweight | Native Rust application with bundled fonts and codecs; runs as a single portable EXE |
| Automatic Navidrome caching | Tracks are saved in the background as they play; finished downloads remain available offline. Enable automatic caching of new server songs to save future additions too |
| One library | Server songs, cached downloads and up to 16 local folders in one list; instant title, artist and album filter |
| Browse and search | Artists, albums, embedded artwork and search across the server and local music |
| Playback queue | Open from the status bar; play a selected track, reorder or remove entries, or keep only the current track |
| Ready for the next song | Prepares the next local or fully cached track for a gapless transition; predownloads the next server track within the download limit |
| Windows controls | System media controls and compatible keyboard/headset play, pause, previous and next buttons, including while minimized |
| Pick up where you left off | Restores the last track, its position, queue, shuffle and repeat; playback starts when you press ▶ |
| Downloads | A track, album or the whole library; up to three downloads at once; optional automatic caching of new songs |
| Offline and bilingual | Your files and finished downloads work without a server; dark/light themes and a saved EN/RU switch in the title bar |
| Defensive handling | Windows DPAPI for passwords, account separation, restricted redirects and paths, bounded media/cover parsing; CI and security checks |
MP3, FLAC, OGG/Vorbis, Opus (mono/stereo in Ogg/WebM), WAV and common AAC/M4A/MP4 variants are supported. Opus is bundled. Streaming starts after buffering; seeking during download is limited to the data already received.
Important
Gapless playback needs the next file to be ready in time. A slow server or an unfinished download can still require buffering. Silence already present in the recording is preserved.
Starting with 0.2.1, the portable ZIP on Releases is signed with Ed25519; see verification and the publisher key.
- Open Settings, enter the server address, username and password.
- Select Test connection, then Save.
- Open the library, an album or search. ▶ plays; ↓ downloads.
The address may include a subfolder, such as https://music.example.com/library;
do not append /rest. Servers reachable from the internet require HTTPS. Plain
HTTP is accepted for addresses that stay inside the local network:
localhost, loopback, private and link-local addresses (192.168.x.x,
10.x.x.x, 172.16–31.x.x, 169.254.x.x, 100.64–127.x.x, fd…/fe80…),
and names such as navidrome or navidrome.local. Token and password travel
in the query string, so keep a LAN server on a trusted network.
Tip
Automatic caching first remembers the existing songs, then downloads new additions. To fetch the whole library now, select ↓ download all songs. Tracks already downloaded are skipped.
- Open Settings and add your music folders. Files stay in their original locations.
- Open Library and select Refresh if needed. Subfolders are included.
- Press ▶; click the queue count in the status bar to edit the playing list.
The cache defaults to the system Music → BEAT folder and can be changed. You can also place your own files there. Local files are never uploaded to Navidrome; clearing the cache affects only BEAT's indexed downloads.
Use RU / EN in the title bar to switch language and light / dark to switch theme. Both choices persist across restarts.
Target: Windows x64. Install Rustup, Visual Studio Build Tools with C++ and the Windows SDK, and CMake 3.16+ for bundled libopus. Running BEAT needs OpenGL 2.1+ and an audio output device. Rust is pinned in rust-toolchain.toml.
From the repository root in PowerShell:
cargo build --locked --release --bin beat
.\target\release\beat.exeA server or music library is not required to build. The icon, fonts and Opus decoder are bundled; launch the EXE from Explorer. MSVC is linked statically, so Visual C++ Redistributable is not required.
Note
Builds do not currently have an Authenticode signature. SmartScreen may warn about an unknown app. If you trust the build's source, choose More info → Run anyway. A SHA-256 hash alone does not identify the publisher.
| Location | Contents |
|---|---|
%APPDATA%\beat |
Settings, language, last track and position, queue, play counts and server lists |
%APPDATA%\beat\covers |
Bounded thumbnail cache |
| Music → BEAT or your chosen cache folder | Downloads and separate .beat-index-*.json files |
| Additional music folders | Your original audio files; BEAT reads them in place |
Passwords use Windows DPAPI for the current user. Downloads, server lists and covers are scoped to the server/account; history and sessions also account for the cache folder. Old account files remain accessible as local music. Clearing the cache deletes only the current account's indexed downloads. Removing a music folder from Settings does not delete its files. Damaged state files are preserved for recovery; read/write failures are visible.
Caution
Inspect or remove unfinished *.part files left by a crash only while BEAT
is closed. Do not share your account settings or server password.
cargo fmt --all -- --check
cargo clippy --locked --all-targets -- -D warnings
cargo test --locked --all-targets
python -B scripts/check_docs.py
python -B scripts/update_i18n.py --check
python -B -m unittest discover -s scripts -p 'test_*.py' -qCI checks code, translations, documentation and the optimized Windows build. Security checks Cargo.lock daily and scans the entire Git history for secrets. Actions use full commit pins; Dependabot proposes weekly updates. CI artifacts include the unsigned EXE, SHA-256, source revision and component notices.
- Reference (RU) — queue, streaming, caching and project structure.
- Security (RU) — protection boundaries and dependency warnings.
- 0.2.1 maintenance review (RU) — module split, dependencies and signed packages.
- Audit before publication (RU) — fixes and verification.
- Icon · Cascadia Mono notice and license.
- Bundled audio and Windows components — sources and licenses.
GNU GPL v3 or later, like SNATCH. Bundled components keep their own licenses; their notices are included in the package. Release signing · Dependency maintenance.
rercon prod. · Telegram

