Die nötigen Werkzeuge
RustMusic verbindet einen Kern in Rust (Audio-Engine, Decoder, DLNA-Server, SQLite-Datenbank) mit einer Oberfläche in SvelteKit, zusammengeführt durch Tauri 2. Auf allen drei Systemen brauchen Sie:
- Rust in der stabilen Version, installiert mit rustup (rustup.rs).
- Node.js 20 oder neuer, mit npm.
- CMake, das libopus für die Wiedergabe von Opus-Dateien kompiliert.
- Git, um den Code zu holen.
Die Abhängigkeiten der einzelnen Systeme
Windows: Installieren Sie die Microsoft C++ Build Tools mit der Workload „Desktopentwicklung mit C++“, danach CMake. Außerdem wird WebView2 benötigt; auf aktuellen Systemen mit Windows 10 und 11 ist es bereits vorhanden.
macOS: Installieren Sie die Xcode-Befehlszeilentools und danach CMake, zum Beispiel mit Homebrew:
xcode-select --install
brew install cmakeLinux (Debian, Ubuntu): Installieren Sie die Build-Werkzeuge und die Entwicklungsbibliotheken von WebKitGTK, GTK, ALSA und PulseAudio:
sudo apt install -y \
build-essential curl wget file git pkg-config cmake libssl-dev \
libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev \
libwebkit2gtk-4.1-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-dev patchelf \
libasound2-dev libpulse-dev libdbus-1-devInstallieren Sie auf einer anderen Distribution die entsprechenden Pakete, oft mit der Endung -devel: WebKitGTK 4.1, GTK 3, libsoup 3, ALSA, PulseAudio, D-Bus und OpenSSL.
Den Code holen und kompilieren
git clone https://github.com/larevuegeek/rustmusic-desktop.git
cd rustmusic-desktop
npm installDie offizielle Konfiguration signiert außerdem die Update-Dateien mit dem privaten Schlüssel des Projekts, den Sie nicht haben. Deaktivieren Sie diesen Schritt mit einer kleinen Konfigurationsdatei im Stammverzeichnis des Projekts, zum Beispiel no-updater.json:
{ "bundle": { "createUpdaterArtifacts": false } }Starten Sie dann den Build und übergeben Sie ihm diese Datei:
npm run tauri build -- --config no-updater.jsonDer erste Build dauert lange: Cargo lädt alle Rust-Abhängigkeiten herunter und kompiliert sie. Die folgenden Builds kompilieren nur neu, was sich geändert hat. Die Pakete für Ihr System landen in src-tauri/target/release/bundle/.
Ohne diese Datei bricht der Build mit der Meldung „A public key has been found, but no private key“ ab: Es scheitert die Signatur der Updates, nicht Ihr Code.
Der Entwicklungsmodus
npm run tauri devDieser Befehl startet RustMusic im Entwicklungsmodus: Eine Änderung an der Oberfläche erscheint sofort, nach einer Änderung am Rust-Code wird neu kompiliert und die Anwendung neu gestartet. Ein Signaturschlüssel ist dafür nicht nötig.
Zur Orientierung im Code:
- src/: die Oberfläche (Komponenten, Seiten, Dienste), mit den Übersetzungen in src/lib/i18n/locales.
- src-tauri/src/core: die Audio-Engine, die Decoder, DSD und DLNA.
- src-tauri/src/commands: die Befehle, die die Oberfläche aufruft.
- src-tauri/src/repository: der Zugriff auf die SQLite-Datenbank.
Ihre Änderung einreichen
- 1
Öffnen Sie ein Issue
Beschreiben Sie eine neue Funktion oder eine größere Änderung zuerst in einem GitHub-Issue. Kleine Korrekturen (Fehler, Tippfehler, Übersetzung) können direkt als Pull Request kommen.
- 2
Arbeiten Sie an Ihrer Kopie
Erstellen Sie auf GitHub eine Kopie (Fork) des Repositorys und darin einen Branch für Ihre Änderung.
- 3
Prüfen Sie Ihren Code
Auf der Rust-Seite müssen cargo fmt und cargo clippy ohne neue Warnung durchlaufen; cargo check muss erfolgreich sein. Jeder sichtbare Text läuft über die Übersetzungen und muss in allen fünf Sprachen vorhanden sein.
- 4
Öffnen Sie den Pull Request
Erklären Sie, was die Änderung bewirkt und warum. Commit-Nachrichten auf Französisch sind willkommen.
Wie der Rest des Projekts wird Ihr Code unter der GPL v3 veröffentlicht.
Häufige Fragen
Muss ich Rust können, um beizutragen?
Nein. Die Oberfläche ist in Svelte und TypeScript geschrieben, die Übersetzungen sind einfache JSON-Dateien, und ein guter Fehlerbericht hilft so viel wie eine Zeile Code.
Wofür wird CMake gebraucht?
Es kompiliert libopus, die Referenzbibliothek zum Dekodieren von Opus, die in RustMusic eingebunden ist.
Kann ich RustMusic für eine andere Linux-Distribution kompilieren?
Ja, wenn die entsprechenden Abhängigkeiten verfügbar sind. Tauri erzeugt Pakete als .deb, .rpm und AppImage, und das kompilierte Programm liegt in src-tauri/target/release.
Darf ich meine kompilierte Version verbreiten?
Ja, unter der GPL v3 und mit ihrem Quellcode. Wenn Sie sie verändert haben, geben Sie ihr einen anderen Namen, damit sie nicht mit der offiziellen Version verwechselt wird.
Keine Lust zu kompilieren?
Die offiziellen Versionen von RustMusic sind fertig zur Installation unter Windows, macOS und Linux. Frei, kostenlos, ohne Konto.