vs-engine-webkit 0.1.11

Browser engine bindings for vibesurfer.
Documentation
[package]
name = "vs-engine-webkit"
description = "Browser engine bindings for vibesurfer."
readme = "README.md"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
build = "build.rs"

[lints]
workspace = true

[features]
# Exposes `vs_engine_webkit::test_support::TestEngine` — an in-memory
# fake `Engine` used by daemon-layer tests to exercise audit / store
# / ref-resolution code without booting WebKit. Sealed: production
# builds (which never enable this feature) cannot link the fake.
test-support = []

[dependencies]
vs-protocol = { path = "../vs-protocol", version = "0.1.11" }
vs-humanize = { path = "../vs-humanize", version = "0.1.11" }
thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[target.'cfg(target_os = "linux")'.dependencies]
# WebKitGTK 6.0 + GLib for the Linux backend. Heavy system deps
# (libwebkitgtk-6.0, libgtk-4, libsoup-3.0) — only pulled when
# targeting Linux. Compilation requires the matching -dev packages on
# the build host.
webkit6 = { version = "0.6", features = ["v2_42"] }
glib = "0.22"
x11rb = { version = "0.13.2", features = ["xtest"] }
[target.'cfg(target_os = "macos")'.dependencies]
# objc2 ecosystem — Rust bindings to the Apple Objective-C runtime and
# the AppKit / Foundation / WebKit frameworks. Most call sites are safe
# at our level; a small unsafe surface remains for delegate-class
# definitions and a few message sends.
objc2 = "0.6"
objc2-foundation = { version = "0.3", features = ["NSURL", "NSURLRequest", "NSString", "NSError", "NSDictionary", "NSValue", "NSArray", "NSData", "NSThread", "NSDate", "NSRunLoop", "NSHTTPCookie"] }
objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", "NSView", "NSWindow", "NSImage", "NSImageRep", "NSBitmapImageRep", "NSGraphics", "NSEvent", "NSScreen"] }
objc2-web-kit = { version = "0.3", features = ["WKWebView", "WKWebViewConfiguration", "WKNavigation", "WKNavigationDelegate", "WKUserContentController", "WKUserScript", "WKScriptMessage", "WKScriptMessageHandler", "WKContentWorld", "WKWebsiteDataStore", "WKHTTPCookieStore", "WKSnapshotConfiguration", "WKFrameInfo"] }
block2 = "0.6"

[target.'cfg(target_os = "windows")'.dependencies]
# Microsoft WebView2 (Edge-based) bindings + the Windows COM runtime.
# Heavy system dep — requires the WebView2 Runtime installed on the
# build/target host. Compilation requires the Windows SDK on the host.
webview2-com = "0.39"
windows = { version = "0.62", features = [
    "Win32_Foundation",
    "Win32_System_Com",
    "Win32_System_Com_StructuredStorage",
    "Win32_System_Threading",
    "Win32_UI_WindowsAndMessaging",
    "Win32_Graphics_Gdi",
    "Win32_Graphics_DirectComposition",
] }

[dev-dependencies]
tempfile = "3"