Skip to content
Cullant

Reference

Build from source

Everything you need to compile Cullant yourself, on the desktop and for Android.

There is no packaged release yet, so this is how you run Cullant today.

What you need

  • Rust, stable channel.
  • Node 20 or later, with npm.
  • On Windows: the MSVC build tools: Visual Studio 2022 Build Tools, with the “Desktop development with C++” workload. Nothing links without them.

Desktop

git clone https://github.com/la-lo-go/cullant.git
cd cullant
npm install

npm run tauri dev      # run it, with hot reload
npm run tauri build    # build the installers

On Windows the installers land in src-tauri/target/release/bundle/nsis/ and src-tauri/target/release/bundle/msi/.

The release profile is tuned for a small, fast binary rather than a fast build, so the first release build takes a while.

Opening a folder at startup

Useful while you are testing:

CULLANT_OPEN_PROJECT=/path/to/photos npm run tauri dev

Android

You need the Android SDK with the command-line tools, the NDK, and a JDK. Set ANDROID_HOME, ANDROID_SDK_ROOT, ANDROID_NDK_HOME and JAVA_HOME before you start.

npx tauri android dev                            # to a device or an emulator
npx tauri android build --apk --target aarch64   # the smallest APK, about 20 MB
npx tauri android build --aab                    # for the Play Store

With no --target flag you get a universal APK carrying all four processor types, which is roughly four times the size. For mixed hardware, --target aarch64 armv7 --split-per-abi gives you one APK per processor.

Release builds sign themselves if a keystore configuration is present. The keystore itself lives outside the repository.

Optional runtime dependencies

Neither is needed to build. Both add capability at run time.

  • ffmpeg 7.0 or later: video poster frames, and HEIF where nothing else can decode it.
  • The Microsoft HEIF and HEVC extensions, on Windows: HEIF pictures.

Checks before a change

cd src-tauri
cargo fmt
cargo clippy --all-targets -- -D warnings
cargo test

cd ..
npm run check

All four must be clean.

Improve this page(Opens in a new tab)