A cross-platform music streaming client for Navidrome and Subsonic-compatible servers, built with Rust and Dioxus.
- π΅ Multi-platform Support: Available on Desktop (macOS, Windows, Linux), Mobile (iOS, Android), and Web
- π§ Audio Playback: High-quality audio streaming with queue management
- π± Server Integration: Connect to Navidrome and Subsonic-compatible music servers
- πΎ Local Storage: Persistent settings and playback state across sessions
- πΌ Playlist Management: Create and manage playlists
- π Search & Browse: Browse your music library by artists, albums, and tracks
- ποΈ Audio Controls: Play, pause, skip, shuffle, and repeat functionality
- π Modern UI: Clean, responsive interface built with Tailwind CSS
- macOS: DMG installer and native .app bundle
- Windows: MSI installer and portable EXE
- Linux: AppImage bundle
- iOS: App Store distribution
- Android: Google Play Store distribution
- Browser: WebAssembly-based web application
- Progressive Web App: Installable PWA support
- Download the latest
.dmgfile from Releases - Open the DMG and drag RustySound to your Applications folder
- Download the latest
.msiinstaller from Releases - Run the installer and follow the setup wizard
- Download the latest
.AppImagefile from Releases - Make it executable:
chmod +x RustySound-*.AppImage - Run:
./RustySound-*.AppImage
Coming soon to App Store and Google Play Store.
Visit rustysound to use the web version.
You can also run RustySound as a Docker container:
- Ensure you have Docker and Docker Compose installed
- Clone this repository or download
docker-compose.yml - Run the application:
docker-compose up -dThe web interface will be available at http://localhost:8080.
To stop the container:
docker-compose downIf you prefer to run the container directly:
docker run -d -p 8080:80 --name rustysound ghcr.io/ad-archer/rustysound:latest- Rust 1.70+ (install here)
- Dioxus CLI:
curl -sSL https://dioxus.dev/install.sh | sh
- Clone the repository:
git clone https://github.com/AD-Archer/RustySound.git
cd RustySound- Install dependencies:
cargo builddx serve# Web (default)
dx serve --platform web
# Desktop
dx serve --platform desktop
# Mobile (iOS Simulator)
dx serve --platform ios
# Mobile (Android Emulator)
dx serve --platform androiddx bundle --platform desktop --release# iOS
dx bundle --platform ios --release
# Android
dx bundle --platform android --releaserustysound/
βββ assets/ # Static assets (icons, styles, etc.)
βββ src/
β βββ main.rs # Application entry point
β βββ components/ # Reusable UI components
β β βββ app.rs # Main app component
β β βββ player.rs # Audio player controls
β β βββ sidebar.rs # Navigation sidebar
β β βββ views/ # Page components
β β βββ home.rs # Home/dashboard
β β βββ albums.rs # Album browser
β β βββ artists.rs # Artist browser
β β βββ queue.rs # Playback queue
β β βββ settings.rs # App settings
β βββ api/ # Server API integration
β βββ db/ # Local database/storage
β βββ components.rs # Component exports
βββ Cargo.toml # Rust dependencies
βββ Dioxus.toml # Dioxus configuration
βββ tailwind.css # Tailwind CSS styles
- Launch RustySound
- Go to Settings
- Add your Navidrome/Subsonic server details:
- Server URL
- Username
- Password (optional, depending on server setup)
- Navidrome: Full feature support
- Subsonic: Compatible with Subsonic API v1.16.1+
- Airsonic: Compatible servers
- Gonic: Compatible servers
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes and test thoroughly
- Submit a pull request
- Follow Rust best practices
- Use Dioxus component patterns
- Test on multiple platforms when possible
- Update documentation for new features
Copyright Β© 2026 AD-Archer. All rights reserved.
- Built with Dioxus - A Rust UI framework
- Audio playback powered by Web Audio API and native platform APIs
- Icons and UI design inspired by modern music streaming applications
