Architecture overview

Alexandria is built around one shared Rust core. Every tool reads and writes the same file-first workspace: Markdown notes with YAML frontmatter, date-based note storage, media files, and trash. Tag membership is derived from note frontmatter into a SQLite index rather than stored as on-disk links.

Diagram

Alexandria architecture: a shared Rust core with CLI, desktop app, importer, fetcher, and sync

Shared components

Core library

alexandria-core is the shared Rust engine for storage, tags, properties, media, trash, search, workspace setup, and file formats.

CLI

akb provides terminal workflows for creating, tagging, searching, media management, and sync. It is built from the core crate.

Desktop app

alexandria-tauri pairs a React/TypeScript frontend with a thin Tauri command layer over the Rust core.

Importer

akb-importer imports Notion exports into the same Markdown workspace used by the CLI and desktop app.

Web fetcher

akb-fetcher captures web articles as Alexandria notes in the local workspace.

Sync

alexandria-sync, akb sync, and akb-sync-server provide end-to-end encrypted cross-device sync with a zero-knowledge server.

How they fit together

This shared-core design keeps behavior consistent while preserving portable, human-readable files.

Why this design