Free and ad-free, thanks to you. Support
Free software 5 min read Updated October 2026

Build RustMusic from source

RustMusic is free software: its code is public, and you can build it yourself to check what you install, test a fix or prepare a contribution. Here are the steps on Windows, macOS and Linux.

01

The tools you need

RustMusic combines a Rust core (audio engine, decoders, DLNA server, SQLite database) with a SvelteKit interface, brought together by Tauri 2. On all three systems, you need:

  • Rust, stable version, installed with rustup (rustup.rs).
  • Node.js 20 or later, with npm.
  • CMake, used to build libopus for playing Opus files.
  • Git, to get the code.
02

Dependencies for each system

Windows: install the Microsoft C++ Build Tools with the “Desktop development with C++” workload, then CMake. WebView2 is also required; it is already present on up-to-date Windows 10 and 11.

macOS: install the Xcode command line tools, then CMake, for example with Homebrew:

xcode-select --install
brew install cmake

Linux (Debian, Ubuntu): install the build tools and the development libraries for WebKitGTK, GTK, ALSA and 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-dev

On another distribution, install the equivalent packages, often with a -devel suffix: WebKitGTK 4.1, GTK 3, libsoup 3, ALSA, PulseAudio, D-Bus and OpenSSL.

03

Getting the code and building

git clone https://github.com/larevuegeek/rustmusic-desktop.git
cd rustmusic-desktop
npm install

The official configuration also signs the update files with the project’s private key, which you don’t have. Disable this step with a small configuration file at the root of the project, named for example no-updater.json:

{ "bundle": { "createUpdaterArtifacts": false } }

Then start the build, passing it this file:

npm run tauri build -- --config no-updater.json

The first build takes a while: Cargo downloads and compiles all the Rust dependencies. Later builds only recompile what has changed. The packages for your system are written to src-tauri/target/release/bundle/.

Without this file, the build stops with the message “A public key has been found, but no private key”: it is the update signing that fails, not your code.

04

Development mode

npm run tauri dev

This command runs RustMusic in development mode: a change to the interface shows up immediately, and a change to the Rust code recompiles and restarts the application. It does not need a signing key.

Finding your way around the code:

  • src/: the interface (components, pages, services), with the translations in src/lib/i18n/locales.
  • src-tauri/src/core: the audio engine, decoders, DSD and DLNA.
  • src-tauri/src/commands: the commands called by the interface.
  • src-tauri/src/repository: access to the SQLite database.
05

Submitting your change

  1. 1

    Open an issue

    For a new feature or a large change, describe it first in a GitHub issue. Small fixes (bug, typo, translation) can go straight to a pull request.

  2. 2

    Work on your own copy

    Create a copy (fork) of the repository on GitHub, then a branch for your change.

  3. 3

    Check your code

    On the Rust side, run cargo fmt and cargo clippy with no new warnings; cargo check must succeed. All visible text goes through the translations and must exist in all five languages.

  4. 4

    Open the pull request

    Explain what the change does and why. Commit messages in French are welcome.

Like the rest of the project, your code will be released under the GPL v3 license.

Frequently asked questions

Do I need to know Rust to contribute?

No. The interface is written in Svelte and TypeScript, the translations are plain JSON files, and a good bug report helps as much as a line of code.

What is CMake for?

It builds libopus, the reference library for decoding Opus, which is bundled into RustMusic.

Can I build RustMusic for another Linux distribution?

Yes, if the equivalent dependencies are available. Tauri produces .deb, .rpm and AppImage packages, and the compiled program is in src-tauri/target/release.

Can I distribute my own build?

Yes, under the GPL v3 license and with its source code. If you have modified it, give it a different name to avoid any confusion with the official version.

Rather not build it yourself?

The official RustMusic builds are ready to install on Windows, macOS and Linux. Free, open source, no account.

Further reading