-
Notifications
You must be signed in to change notification settings - Fork 1
Building from Source
ecamacho edited this page Jul 10, 2026
·
2 revisions
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.
- Install prerequisites (below)
-
cargo tauri dev→ runs the dev build -
./scripts/build.sh→ builds all platform packages - Or
./scripts/build.sh linux-appimage→ one specific target
| 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
|
Debian/Ubuntu:
sudo apt install -y libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-devFedora:
sudo dnf install -y webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-develcargo tauri devThis builds the Svelte UI and the Rust desktop shell and launches the app with hot reload on the frontend.
./scripts/build.shThis produces all packages the host OS supports.
./scripts/build.sh linux-appimage
./scripts/build.sh linux-deb
./scripts/build.sh macos
./scripts/build.sh windowsAppImage 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# Compile whole workspace
cargo build --workspace
# Run all Rust tests
cargo test --workspaceThese do not produce packaged desktop artifacts; they validate jellyx-core, jellyx-desktop, jellyx-cli, jellyx-ffi, and any test crates.
- Architecture — what the crates do
- Packaging Guide — per-target packaging details
- Release Process — how releases are cut