Skip to content
Velta GetDownload
Menu

Project

Building and developing Velta

Velta is free software (GPL-3.0). The repo lives at github.com/pbuzdin/velta.

git clone https://github.com/pbuzdin/velta.git
cd velta

Repository layout

Quick start: run the UI in 30 seconds

The frontend runs standalone in demo mode with a mock core — no Rust toolchain needed:

python3 -m http.server 8080 -d app
# open http://localhost:8080 in a browser

Run the frontend regression suites (Node's built-in test runner, no dependencies):

node --test tests/

Desktop (Windows / macOS)

Requires Rust and the Tauri CLI.

cd velta-app
cargo tauri dev      # dev run with hot reload
cargo tauri build    # produce the installer

Desktop builds must run natively on the target OS. Note that the debug exe embeds app/ at compile time — after editing the frontend, force a rebuild (cargo clean -p velta-app) before relaunching.

Android

Requires the Android SDK and NDK (an arm64 device or emulator for testing).

cd velta-app
cargo tauri android init   # once
cargo tauri android dev
cargo tauri android build

Browser PWA (WebAssembly core)

The PWA ships the Delta Chat core compiled to WebAssembly, built from packages/deltachat-wasm (see its README). Assemble a deployable dist:

# put wasm core assets into build/wasm-dist (CI artifact or wasm-pack)
node scripts/build-pwa.mjs          # → build/dist-pwa
node scripts/verify-pwa-dist.mjs    # 10 in-browser checks

To self-host the PWA, see docs/pwa-self-host.md — it is a static site, any web server works.

Core (Rust)

Build and test the vendored core from WSL/Linux (native Windows cargo fails on openssl-sys):

cd core
cargo test
python3 ../tools/apply-core-patches.py verify   # quilt patches intact

Changes inside core/ must go through the quilt tool (tools/apply-core-patches.py) so re-vendoring stays reproducible.

Contributing

Issues and pull requests are welcome on GitHub. For deeper architecture notes, start with AGENTS.md and docs/as-built-architecture.md.