Skip to content

Building from Source

ecamacho edited this page Jul 10, 2026 · 2 revisions

Building from Source

Build Jellyx from source with Rust + Tauri v2 + Svelte. The workspace builds with Cargo; the desktop app is packaged with cargo tauri and the scripts/build.sh helper.

Quick path

  1. Install prerequisites (below)
  2. cargo tauri dev → runs the dev build
  3. ./scripts/build.sh → builds all platform packages
  4. Or ./scripts/build.sh linux-appimage → one specific target

Prerequisites

Tool Version Notes
Rust 1.87+ rustup recommended
Node.js 18+ with npm
cargo-tauri CLI current cargo install tauri-cli
Linux libs — webkit2gtk-4.1, libgtk-3-dev, libappindicator3-dev

Linux system packages

Debian/Ubuntu:

sudo apt install -y libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev

Fedora:

sudo dnf install -y webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel

Dev run

cargo tauri dev

This builds the Svelte UI and the Rust desktop shell and launches the app with hot reload on the frontend.

Build all packages

./scripts/build.sh

This produces all packages the host OS supports.

Build a specific target

./scripts/build.sh linux-appimage
./scripts/build.sh linux-deb
./scripts/build.sh macos
./scripts/build.sh windows

AppImage caveat (required)

AppImage builds must use NO_STRIP=1 because of the RELR relocation behavior. The build script sets this for the linux-appimage target; if you invoke cargo tauri build directly for AppImage, set it yourself:

NO_STRIP=1 cargo tauri build --target x86_64-unknown-linux-gnu

Workspace build and tests

# Compile whole workspace
cargo build --workspace

# Run all Rust tests
cargo test --workspace

These do not produce packaged desktop artifacts; they validate jellyx-core, jellyx-desktop, jellyx-cli, jellyx-ffi, and any test crates.

Next step

Clone this wiki locally