- crates/kv-ipc: native-messaging framing and the local IPC socket/pipe (moved from kestrove-desktop), plus Listener::bind_in/connect_in and, on macOS, the App Group socket for the kestrove-nmh bundled in Kestrove.app (Contents/Resources/kestrove-app-group). - crates/kv-nmh: the native-messaging host, with an embedded Info.plist on macOS so it can run sandboxed (KV_NMH_BUNDLE_ID). - kv-ffi feature browser-bridge: broker, pairing channel and word list (moved from kestrove-desktop) and BrowserBridge for Swift. build-apple.sh enables it and builds a universal kestrove-nmh. - RUSTSEC-2026-0381/0382: rustls-webpki 0.103.16, webpki-roots 1.0.10 (distrusted emSign roots). Co-Authored-By: Claude Opus 5.5 <[email protected]>
51 lines
1.7 KiB
TOML
51 lines
1.7 KiB
TOML
[package]
|
|
name = "kv-ffi"
|
|
description = "UniFFI bindings: the single API surface used by Swift, Kotlin and the Tauri app."
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[lib]
|
|
crate-type = ["lib", "staticlib", "cdylib"]
|
|
name = "kv_ffi"
|
|
|
|
[[bin]]
|
|
name = "uniffi-bindgen"
|
|
path = "src/bin/uniffi-bindgen.rs"
|
|
|
|
[dependencies]
|
|
kv-proto.workspace = true
|
|
kv-crypto.workspace = true
|
|
kv-model = { workspace = true, features = ["psl"] }
|
|
kv-store.workspace = true
|
|
kv-sync.workspace = true
|
|
kv-import.workspace = true
|
|
serde.workspace = true
|
|
base64.workspace = true
|
|
hkdf.workspace = true
|
|
sha2.workspace = true
|
|
tokio = { workspace = true }
|
|
uuid.workspace = true
|
|
thiserror.workspace = true
|
|
serde_json.workspace = true
|
|
zeroize.workspace = true
|
|
uniffi = { workspace = true, features = ["cli", "tokio"] }
|
|
# browser-bridge: the app side of the browser extension protocol (pairing channel, broker, local IPC).
|
|
kv-ipc = { path = "../kv-ipc", optional = true }
|
|
x25519-dalek = { version = "2", features = ["static_secrets", "zeroize"], optional = true }
|
|
aes-gcm = { version = "0.10", optional = true }
|
|
getrandom = { version = "0.2", optional = true }
|
|
url = { workspace = true, optional = true }
|
|
|
|
[features]
|
|
# Serves the browser extension through kestrove-nmh: on in the macOS app (via the Apple build) and the desktop app.
|
|
browser-bridge = ["dep:kv-ipc", "dep:x25519-dalek", "dep:aes-gcm", "dep:getrandom", "dep:url", "uuid/v4"]
|
|
|
|
[dev-dependencies]
|
|
kv-sync = { workspace = true, features = ["test-server"] }
|
|
tempfile.workspace = true
|
|
p256.workspace = true
|
|
ciborium.workspace = true
|
|
zip = { version = "9", default-features = false, features = ["deflate-flate2"] }
|