Gli strumenti necessari
RustMusic unisce un nucleo in Rust (motore audio, decoder, server DLNA, database SQLite) e un’interfaccia SvelteKit, tenuti insieme da Tauri 2. Sui tre sistemi ti servono:
- Rust, in versione stable, installato con rustup (rustup.rs).
- Node.js 20 o più recente, con npm.
- CMake, che serve a compilare libopus per la riproduzione dei file Opus.
- Git, per scaricare il codice.
Le dipendenze di ogni sistema
Windows: installa i Microsoft C++ Build Tools con il carico di lavoro «Sviluppo di applicazioni desktop con C++», poi CMake. Serve anche WebView2, già presente su Windows 10 e 11 aggiornati.
macOS: installa gli strumenti da riga di comando di Xcode, poi CMake, per esempio con Homebrew:
xcode-select --install
brew install cmakeLinux (Debian, Ubuntu): installa gli strumenti di compilazione e le librerie di sviluppo di WebKitGTK, GTK, ALSA e 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-devSu un’altra distribuzione, installa i pacchetti equivalenti, spesso con il suffisso -devel: WebKitGTK 4.1, GTK 3, libsoup 3, ALSA, PulseAudio, D-Bus e OpenSSL.
Scaricare il codice e compilare
git clone https://github.com/larevuegeek/rustmusic-desktop.git
cd rustmusic-desktop
npm installLa configurazione ufficiale firma anche i file di aggiornamento con la chiave privata del progetto, che tu non hai. Disattiva questo passaggio con un piccolo file di configurazione nella radice del progetto, chiamato per esempio no-updater.json:
{ "bundle": { "createUpdaterArtifacts": false } }Poi avvia la compilazione passandogli questo file:
npm run tauri build -- --config no-updater.jsonLa prima compilazione è lunga: Cargo scarica e compila tutte le dipendenze Rust. Le successive ricompilano solo ciò che è cambiato. I pacchetti per il tuo sistema vengono scritti in src-tauri/target/release/bundle/.
Senza questo file, la compilazione si ferma con il messaggio «A public key has been found, but no private key»: a fallire è la firma degli aggiornamenti, non il tuo codice.
La modalità sviluppo
npm run tauri devQuesto comando avvia RustMusic in modalità sviluppo: una modifica all’interfaccia compare subito, una modifica al codice Rust ricompila e riavvia l’applicazione. Non serve nessuna chiave di firma.
Per orientarti nel codice:
- src/: l’interfaccia (componenti, pagine, servizi), con le traduzioni in src/lib/i18n/locales.
- src-tauri/src/core: il motore audio, i decoder, il DSD e il DLNA.
- src-tauri/src/commands: i comandi chiamati dall’interfaccia.
- src-tauri/src/repository: l’accesso al database SQLite.
Proporre la tua modifica
- 1
Apri una issue
Per una nuova funzione o una modifica importante, descrivila prima in una issue su GitHub. Le piccole correzioni (bug, refusi, traduzioni) possono andare direttamente in pull request.
- 2
Lavora sulla tua copia
Crea una copia (fork) del repository su GitHub, poi un branch per la tua modifica.
- 3
Verifica il tuo codice
Lato Rust, cargo fmt e cargo clippy devono passare senza nuovi avvisi; cargo check deve riuscire. Ogni testo visibile passa dalle traduzioni e deve esistere in tutte e cinque le lingue.
- 4
Apri la pull request
Spiega cosa cambia la modifica e perché. I messaggi di commit in francese sono i benvenuti.
Come il resto del progetto, il tuo codice sarà pubblicato con licenza GPL v3.
Domande frequenti
Bisogna conoscere Rust per contribuire?
No. L’interfaccia è scritta in Svelte e TypeScript, le traduzioni sono semplici file JSON, e una buona segnalazione di bug aiuta quanto una riga di codice.
A cosa serve CMake?
Compila libopus, la libreria di riferimento per decodificare l’Opus, integrata in RustMusic.
Posso compilare RustMusic per un’altra distribuzione Linux?
Sì, se le dipendenze equivalenti sono disponibili. Tauri genera i pacchetti .deb, .rpm e AppImage, e il programma compilato si trova in src-tauri/target/release.
Posso distribuire la mia versione compilata?
Sì, con licenza GPL v3 e con il suo codice sorgente. Se l’hai modificata, dalle un altro nome per evitare confusione con la versione ufficiale.
Non hai voglia di compilare?
Le versioni ufficiali di RustMusic sono pronte da installare su Windows, macOS e Linux. Libero, gratuito, senza account.