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.