Installation

Install the desktop application, or build the whole project from source.

Install the application

This is what almost everyone wants. The desktop release already contains the core — the Rust library is bundled beside the executable and linked in process. There is no server to install, no service to configure, and no second component to keep running.

Every tag on the front-end repository publishes a release carrying the application for both platforms. Versions below 1.0 are marked as prereleases.

alexandria-ui — Releases

Every package carries the Rust core, and every package that cannot ask a package manager for ffmpeg carries that too. There is nothing else to install.

Windows

Windows 10 x64 or later.

AssetHow to install
alexandria-setup-<version>.exeThe installer. Run it — it asks where to install, and replaces an existing installation it finds there or wherever a previous install recorded one. Only the program’s own files are removed; your library, catalog, and settings are left alone.
alexandria-<version>-windows-x64.zipThe application itself. Unpack it anywhere and run alexandria.exe. Nothing is registered, and deleting the folder removes it.
alexandria.msixPublished unsigned, and Windows will not install an unsigned MSIX without a trusted certificate. Use the installer unless you have your own signing set up.

The Windows packages carry an LGPL build of ffmpeg beside the executable.

Packages are unsigned — code signing needs a certificate the project does not hold yet — so SmartScreen will warn on first run. Choose More info and then Run anyway if you trust the source.

Linux

Ubuntu LTS x64.

AssetHow to installWhere ffmpeg comes from
alexandria-installer-<version>-linux-x64.shchmod +x it and run it. Defaults to ~/.local/share/alexandria, or /opt/alexandria as root, and replaces an existing installation the same way the Windows installer does. --prefix DIR and --yes skip the questions; --uninstall removes what it installed and nothing else.bundled
alexandria-<version>-linux-x64.tar.gzThe application itself. Unpack it and run ./alexandria.bundled
.debsudo apt install ./alexandria_<version>_amd64.deb — built for Ubuntu 24.04, whose library names it depends on.apt
.AppImageMark it executable with chmod +x and run it. Nothing is installed system-wide.bundled
.flatpakflatpak install ./alexandria-<version>.flatpakthe org.freedesktop.Platform.ffmpeg-full runtime extension

The installer, the tarball, and the AppImage carry everything the program needs — ffmpeg, libmpv, and the libraries those depend on. Only the graphics, sound, and C libraries any desktop application already has come from your system.

The .deb deliberately does not bundle them: depending on the distribution’s own packages is the entire point of a .deb, and a bundled copy inside one would shadow the system’s and then go unpatched.

Every bundled library’s licence travels inside the package in lib/licenses, with the full list in lib/licenses/PACKAGES.txt and the copyleft ones named in lib/licenses/COPYLEFT.tsv. Alexandria’s own source code is under the Artur Rios Attribution License; the bundled libraries keep their own licences, and a package that bundles the copyleft ones is distributed as a combined work subject to their terms (GPL-3.0). The Windows packages carry an LGPL build of ffmpeg and no mpv.

After installing

Launch Alexandria and go to Usage. Your catalog and settings live in your own user profile, not alongside the application, so uninstalling never touches them — and never touches your library files.

Build from source

You only need this if you want to work on Alexandria.

The core — alexandria-api

Requirements: Rust 1.94 or newer (edition 2021) and cargo. The floor comes from sqlx 0.9, the highest MSRV in the dependency graph.

alexandria-core links against ffmpeg-next for video metadata extraction, so the ffmpeg C development libraries and clang (for bindgen) must be installed before the workspace will build. This is the project’s only system dependency, and without it cargo build and cargo test fail for the whole workspace — not just the video code. Any ffmpeg from 3.0 to 9.0 works.

On Debian or Ubuntu:

sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev \
  libavfilter-dev libavdevice-dev libswscale-dev libswresample-dev \
  pkg-config clang

Windows needs a build of ffmpeg that ships include/ and lib/ — not just bin/. Most downloads labelled “essentials” ship the executables only and will not work. The repository’s README walks through the options in detail:

alexandria-api — Building

Then:

git clone https://github.com/artur-rios/alexandria-api.git
cd alexandria-api
cargo build --release

The front-end — alexandria-ui

Requirements:

  • The Flutter SDK, with the desktop target for your platform enabled.
  • Windows: Windows 10 x64 or later, with the Visual Studio “Desktop development with C++” workload.
  • Linux: Ubuntu LTS x64, with the GTK development packages.
  • A build of alexandria-ffi. Release packages bundle it; a development checkout does not.
git clone https://github.com/artur-rios/alexandria-ui.git
cd alexandria-ui
flutter pub get
dart run build_runner build
dart run ffigen --config ffigen.yaml
flutter gen-l10n

Build the core’s shared library and put it where the loader looks — native/windows/ or native/linux/ — or point ALEXANDRIA_CORE_LIBRARY at a locally built one:

cd ../alexandria-api
cargo build --release -p alexandria-ffi
cp target/release/libalexandria_ffi.so ../alexandria-ui/native/linux/

Then run it:

flutter run -d windows
flutter run -d linux

The HTTP server

Only needed if you want the REST/JSON surface rather than the desktop application. Configuration is read from config.toml at startup, and any key can be overridden with an ALEXANDRIA_* environment variable.

cp config.toml.example config.toml
cargo run --release -p alexandria-http

It binds to loopback by default. Check it is up:

curl http://127.0.0.1:8080/health

The full configuration surface — authentication mode and session TTL, bind address, SQLite path, filesystem root, indexing concurrency, soft-delete retention, and log level — is documented in config.toml.example and in the Operations & Infrastructure Document.

The server has no packaged release. Build it from source.