Les outils nécessaires
RustMusic associe un cœur en Rust (moteur audio, décodeurs, serveur DLNA, base SQLite) et une interface SvelteKit, réunis par Tauri 2. Sur les trois systèmes, il vous faut :
- Rust, en version stable, installé avec rustup (rustup.rs).
- Node.js 20 ou plus récent, avec npm.
- CMake, qui sert à compiler libopus pour la lecture des fichiers Opus.
- Git, pour récupérer le code.
Les dépendances de chaque système
Windows : installez les Microsoft C++ Build Tools avec la charge de travail « Développement Desktop en C++ », puis CMake. WebView2 est aussi nécessaire ; il est déjà présent sur Windows 10 et 11 à jour.
macOS : installez les outils en ligne de commande d’Xcode, puis CMake, par exemple avec Homebrew :
xcode-select --install
brew install cmakeLinux (Debian, Ubuntu) : installez les outils de compilation et les bibliothèques de développement de WebKitGTK, GTK, ALSA et 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-devSur une autre distribution, installez les paquets équivalents, souvent suffixés -devel : WebKitGTK 4.1, GTK 3, libsoup 3, ALSA, PulseAudio, D-Bus et OpenSSL.
Récupérer le code et compiler
git clone https://github.com/larevuegeek/rustmusic-desktop.git
cd rustmusic-desktop
npm installLa configuration officielle signe aussi les fichiers de mise à jour avec la clé privée du projet, que vous n’avez pas. Désactivez cette étape avec un petit fichier de configuration à la racine du projet, nommé par exemple no-updater.json :
{ "bundle": { "createUpdaterArtifacts": false } }Puis lancez la compilation en lui passant ce fichier :
npm run tauri build -- --config no-updater.jsonLa première compilation est longue : Cargo télécharge et compile toutes les dépendances Rust. Les suivantes ne recompilent que ce qui a changé. Les paquets de votre système sont écrits dans src-tauri/target/release/bundle/.
Sans ce fichier, la compilation s’arrête sur le message « A public key has been found, but no private key » : c’est la signature des mises à jour qui échoue, pas votre code.
Le mode développement
npm run tauri devCette commande lance RustMusic en mode développement : une modification de l’interface s’affiche aussitôt, une modification du code Rust recompile et relance l’application. Elle n’a pas besoin de clé de signature.
Pour vous repérer dans le code :
- src/ : l’interface (composants, pages, services), avec les traductions dans src/lib/i18n/locales.
- src-tauri/src/core : le moteur audio, les décodeurs, le DSD et le DLNA.
- src-tauri/src/commands : les commandes appelées par l’interface.
- src-tauri/src/repository : l’accès à la base SQLite.
Proposer votre modification
- 1
Ouvrez une issue
Pour une nouvelle fonction ou un gros changement, décrivez-le d’abord dans une issue GitHub. Les petites corrections (bug, faute, traduction) peuvent aller directement en pull request.
- 2
Travaillez sur votre copie
Créez une copie (fork) du dépôt sur GitHub, puis une branche pour votre modification.
- 3
Vérifiez votre code
Côté Rust, passez cargo fmt et cargo clippy sans nouvel avertissement ; cargo check doit réussir. Tout texte visible passe par les traductions et doit exister dans les cinq langues.
- 4
Ouvrez la pull request
Expliquez ce que la modification change et pourquoi. Les messages de commit en français sont les bienvenus.
Comme le reste du projet, votre code sera publié sous licence GPL v3.
Questions fréquentes
Faut-il connaître Rust pour contribuer ?
Non. L’interface est écrite en Svelte et TypeScript, les traductions sont de simples fichiers JSON, et un bon rapport de bug aide autant qu’une ligne de code.
À quoi sert CMake ?
Il compile libopus, la bibliothèque de référence pour décoder l’Opus, intégrée à RustMusic.
Puis-je compiler RustMusic pour une autre distribution Linux ?
Oui, si les dépendances équivalentes sont disponibles. Tauri produit les paquets .deb, .rpm et AppImage, et le programme compilé se trouve dans src-tauri/target/release.
Puis-je distribuer ma version compilée ?
Oui, sous licence GPL v3 et avec son code source. Si vous l’avez modifiée, donnez-lui un autre nom pour éviter toute confusion avec la version officielle.
Pas envie de compiler ?
Les versions officielles de RustMusic sont prêtes à installer sur Windows, macOS et Linux. Libre, gratuit, sans compte.