Las herramientas necesarias
RustMusic combina un núcleo en Rust (motor de audio, decodificadores, servidor DLNA, base SQLite) y una interfaz SvelteKit, unidos por Tauri 2. En los tres sistemas necesitas:
- Rust, en versión estable, instalado con rustup (rustup.rs).
- Node.js 20 o más reciente, con npm.
- CMake, que sirve para compilar libopus para la reproducción de archivos Opus.
- Git, para obtener el código.
Las dependencias de cada sistema
Windows: instala las Microsoft C++ Build Tools con la carga de trabajo «Desarrollo para el escritorio con C++» y después CMake. También necesitas WebView2, que ya viene incluido en Windows 10 y 11 actualizados.
macOS: instala las herramientas de línea de comandos de Xcode y después CMake, por ejemplo con Homebrew:
xcode-select --install
brew install cmakeLinux (Debian, Ubuntu): instala las herramientas de compilación y las bibliotecas de desarrollo de WebKitGTK, GTK, ALSA y 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-devEn otra distribución, instala los paquetes equivalentes, que a menudo terminan en -devel: WebKitGTK 4.1, GTK 3, libsoup 3, ALSA, PulseAudio, D-Bus y OpenSSL.
Obtener el código y compilar
git clone https://github.com/larevuegeek/rustmusic-desktop.git
cd rustmusic-desktop
npm installLa configuración oficial también firma los archivos de actualización con la clave privada del proyecto, que tú no tienes. Desactiva este paso con un pequeño archivo de configuración en la raíz del proyecto, llamado por ejemplo no-updater.json:
{ "bundle": { "createUpdaterArtifacts": false } }Después lanza la compilación pasándole ese archivo:
npm run tauri build -- --config no-updater.jsonLa primera compilación tarda bastante: Cargo descarga y compila todas las dependencias de Rust. Las siguientes solo recompilan lo que ha cambiado. Los paquetes para tu sistema se generan en src-tauri/target/release/bundle/.
Sin ese archivo, la compilación se detiene con el mensaje «A public key has been found, but no private key»: lo que falla es la firma de las actualizaciones, no tu código.
El modo desarrollo
npm run tauri devEste comando lanza RustMusic en modo desarrollo: un cambio en la interfaz se muestra al instante, y un cambio en el código Rust recompila y reinicia la aplicación. No necesita clave de firma.
Para orientarte en el código:
- src/: la interfaz (componentes, páginas, servicios), con las traducciones en src/lib/i18n/locales.
- src-tauri/src/core: el motor de audio, los decodificadores, el DSD y el DLNA.
- src-tauri/src/commands: los comandos que llama la interfaz.
- src-tauri/src/repository: el acceso a la base SQLite.
Proponer tu cambio
- 1
Abre un issue
Para una función nueva o un cambio grande, descríbelo primero en un issue de GitHub. Las correcciones pequeñas (error, errata, traducción) pueden ir directamente en una pull request.
- 2
Trabaja en tu copia
Crea una copia (fork) del repositorio en GitHub y después una rama para tu cambio.
- 3
Comprueba tu código
En la parte de Rust, pasa cargo fmt y cargo clippy sin avisos nuevos; cargo check debe terminar sin errores. Todo texto visible pasa por las traducciones y debe existir en los cinco idiomas.
- 4
Abre la pull request
Explica qué cambia la modificación y por qué. Los mensajes de commit en francés son bienvenidos.
Como el resto del proyecto, tu código se publicará bajo la licencia GPL v3.
Preguntas frecuentes
¿Hay que saber Rust para contribuir?
No. La interfaz está escrita en Svelte y TypeScript, las traducciones son simples archivos JSON, y un buen informe de error ayuda tanto como una línea de código.
¿Para qué sirve CMake?
Compila libopus, la biblioteca de referencia para decodificar Opus, integrada en RustMusic.
¿Puedo compilar RustMusic para otra distribución Linux?
Sí, si las dependencias equivalentes están disponibles. Tauri genera los paquetes .deb, .rpm y AppImage, y el programa compilado se encuentra en src-tauri/target/release.
¿Puedo distribuir mi versión compilada?
Sí, bajo licencia GPL v3 y con su código fuente. Si la has modificado, ponle otro nombre para evitar confusiones con la versión oficial.
¿No te apetece compilar?
Las versiones oficiales de RustMusic están listas para instalar en Windows, macOS y Linux. Libre, gratuito y sin cuenta.