//! The Kestrove core for the web vault, compiled to WebAssembly (`wasm-pack build crates/kv-wasm`). //! //! The browser runs the same crypto, item model and sync engine as the apps; the server stays //! zero-knowledge. Platform pieces replaced for the browser: //! * storage: [`store::WebStore`], an in-memory replica persisted entry by entry to IndexedDB; //! * network: reqwest over `fetch` (the browser's TLS, same origin as the web vault; no SPKI pins); //! * device key: a non-extractable WebCrypto ECDSA P-256 key kept in IndexedDB; //! * randomness and time: `crypto.getRandomValues` and `Date.now()`. //! //! [`core::WebCore`] holds the logic and is plain Rust (tested natively too); the `wasm` module is //! the `wasm-bindgen` surface. See `README.md` for the JS API and how the UI should call it. pub mod core; pub mod dto; pub mod error; pub mod store; #[cfg(target_arch = "wasm32")] mod wasm; pub use crate::core::WebCore; pub use error::CoreError;