Overview

This page gives a rough architectural overview of the most important aspects of OmniKee.

AppState and omnikee-lib

Security-critical state such as the decrypted databases is held in an AppState instance that is part of the omnikee-lib crate. The crate can be compiled both as a Rust dependency and as a WebAssembly module (see next section).

Deployment styles

OmniKee can run in a "Tauri" and in a "Web" mode which determines the shape and location of the AppState object. In the frontend, the omnikee.ts adapter abstracts away the deployment style behind a common interface used by the rest of the user interface.

"Tauri" Mode

Tauri mode

When OmniKee is executed as a standalone application, it follows the recommended architecture of a Tauri application. omnikee-lib is used as a Rust dependency, and the AppState is managed as a Tauri state object and its methods are called via Tauri commands.

"Web" Mode

Web mode

When OmniKee is running in the browser, omnikee-lib is compiled into WebAssembly via wasm-pack and the methods of the AppState are accessed directly from the frontend application.

Edit this page on GitHub