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
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
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.