Skip to content

InstaZDLL/WaveFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

519 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

WaveFlow logo

WaveFlow

Local music player for desktop β€” built with Tauri 2, React 19 & Rust

Version Downloads Tauri 2 React 19 Rust License Platform


WaveFlow is a local music player desktop app with a Spotify-inspired 3-panel UI. It scans your local audio folders, organizes tracks by album/artist/genre, and plays them with a real-time audio engine β€” no streaming, no cloud, your music stays on your machine.

Install β€” grab the bundle for your OS on the latest release; every release page lists the per-distro one-liner (AUR / COPR / apt / winget) and the standalone installers.

Screenshots

Home view with profile-aware greeting, mood radio and recently played Virtualised library albums grid
Home Β· profile-aware greeting, mood radio, Daily Mix carousel Library Β· virtualised album grid with Hi-Res badges and A-Z jump
Album detail view with multi-disc grouping and side now-playing panel Fullscreen Now Playing view with real-time spectrum visualizer
Album detail Β· multi-disc grouping, side Now Playing panel with artist bio Immersive Now Playing Β· full-bleed artwork with real-time spectrum visualizer
Apple Music style fullscreen karaoke lyrics WaveFlow Wrapped year-in-review with top tracks, average tempo and longest streak
Karaoke lyrics Β· Apple-Music-style word-level highlight with click-to-seek Wrapped Β· year-in-review with top tracks, average tempo, longest streak β€” local & private

Cover art shown in the screenshots above remains the property of its respective rights holders. WaveFlow is a local-file player β€” no music content is bundled, and you must legally own the files in your library.

Features

Area Highlights Deep dive
Playback Symphonia + cpal, lock-free 3-thread engine, real dual-decoder crossfade, ReplayGain, variable playback speed (0.5×–2Γ—), output-device picker, OS media controls (SMTC / MPRIS / MediaRemote), persistent queue with shuffle / repeat / auto-advance docs
Library Folder scanning + filesystem watcher, on-demand audio analysis (peak, loudness, ReplayGain, BPM), Hi-Res badges, multi-artist split, POPM 5-star ratings, A-Z navigator, multi-select action bar docs
Playlists Drag-and-drop reorder (virtualised), bulk add from any source, M3U import / export with basename-fallback matching, likes, recently-played docs
Smart playlists Auto-generated Daily Mix family bucketed by tempo, with composite artist-photo covers rendered from your Deezer cache docs
Integrations Deezer (artwork + labels), Last.fm (bios + scrobbling with retry queue), LRCLIB (synchronised lyrics), Discord Rich Presence ("Listening to WaveFlow" with cover + progress bar) β€” all cached locally for offline use docs
UI & UX Spotify-style 3-panel layout, system tray, statistics dashboard with JSON export, WaveFlow Wrapped year-in-review (story-style overlay), virtual scroll for 6000+ tracks, dark mode (View Transitions API), 17 locales (RTL-aware), per-profile isolated DB with scheduled auto-backup, signed auto-updater docs

Tech Stack

Layer Technologies
Desktop shell Tauri 2.10 (tray icon, opener, dialog, updater plugins)
OS media controls souvlaki 0.8 (SMTC / MPRIS / MediaRemote bridge)
Discord Rich Presence discord-rich-presence 1.1 (local IPC named pipe, no auth)
Frontend React 19, TypeScript, Vite 8, Tailwind CSS 4, Lucide icons, @dnd-kit (drag-and-drop), @tanstack/react-virtual (virtualization)
Backend Rust, SQLite (sqlx), FTS5 contentless full-text search
Audio symphonia 0.6 (decode), cpal 0.17 (output), rubato 2.0 (resample), rtrb 0.3 (SPSC ring)
Metadata extraction lofty 0.24 (tags, embedded art, POPM, INITIALKEY)
Imaging image 0.25 + fast_image_resize 6 (SIMD thumbnails)
Filesystem watcher notify 8 (debounced rescans of watched folders)
External APIs Deezer public API (no auth) + Last.fm (read + signed methods via md-5 + reqwest 0.12 with rustls) + LRCLIB (synchronized lyrics)
Package manager Bun

Getting Started

# Install dependencies
bun install

# Run the desktop app in development mode
bun run tauri dev

# Build for production
bun run tauri build

Development Commands

bun run dev          # Vite dev server only (no Tauri shell)
bun run typecheck    # TypeScript check
bun run lint         # ESLint
bun run lint:fix     # ESLint with auto-fix
bun run format       # Prettier

# Rust backend
cargo check --manifest-path src-tauri/Cargo.toml --all-targets
cargo test  --manifest-path src-tauri/Cargo.toml

Documentation

Per-feature deep dives, architecture and storage layout live under docs/:

Community

English and French both welcome.

License

Copyright (C) 2026 InstaZDLL

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

See LICENSE for the full text.

About

🌊 WaveFlow β€” Spotify-style desktop music player for your local library. Lock-free Rust audio (FLAC/MP3/DSD up to DSD1024), 6-band EQ, ReplayGain, gapless, crossfade, synced lyrics (LRCLIB), Last.fm scrobbling, DLNA server.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages