feat: Add WASM support and browser extension infrastructure
- Add WASM build target and dependencies for all crates. - Implement IndexedDB-based persistent storage for WASM. - Create browser extension infrastructure (UI, scripting, etc.). - Integrate Rhai scripting engine for secure automation. - Implement user stories and documentation for the extension.
This commit is contained in:
		| @@ -7,16 +7,18 @@ edition = "2021" | ||||
| path = "src/lib.rs" | ||||
|  | ||||
| [dependencies] | ||||
| tokio = { version = "1.37", features = ["rt", "macros"] } | ||||
| async-trait = "0.1" | ||||
| js-sys = "0.3" | ||||
| wasm-bindgen = "0.2" | ||||
| wasm-bindgen-futures = "0.4" | ||||
| thiserror = "1" | ||||
| tempfile = "3" | ||||
|  | ||||
|  | ||||
| [target.'cfg(not(target_arch = "wasm32"))'.dependencies] | ||||
| sled = { version = "0.34" } | ||||
|  | ||||
| [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] | ||||
| tempfile = "3" | ||||
| tokio = { version = "1", features = ["rt-multi-thread", "macros"] } | ||||
|  | ||||
| [target.'cfg(target_arch = "wasm32")'.dependencies] | ||||
|   | ||||
| @@ -28,13 +28,16 @@ use idb::{Database, TransactionMode, Factory}; | ||||
| use wasm_bindgen::JsValue; | ||||
| #[cfg(target_arch = "wasm32")] | ||||
| use js_sys::Uint8Array; | ||||
| #[cfg(target_arch = "wasm32")] | ||||
| use std::rc::Rc; | ||||
|  | ||||
| #[cfg(target_arch = "wasm32")] | ||||
| const STORE_NAME: &str = "kv"; | ||||
|  | ||||
| #[cfg(target_arch = "wasm32")] | ||||
| #[derive(Clone)] | ||||
| pub struct WasmStore { | ||||
|     db: Database, | ||||
|     db: Rc<Database>, | ||||
| } | ||||
|  | ||||
| #[cfg(target_arch = "wasm32")] | ||||
| @@ -50,7 +53,7 @@ impl WasmStore { | ||||
|             } | ||||
|         }); | ||||
|         let db = open_req.await.map_err(|e| KVError::Other(format!("IndexedDB open error: {e:?}")))?; | ||||
|         Ok(Self { db }) | ||||
|         Ok(Self { db: Rc::new(db) }) | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user