tauri-runtime-servocat 1.5.1

Servo-replacement runtime for Tauri: wires html-cat, css-cat, dom-cat, layout-cat, paint-cat, net-cat, boa-cat, ecma-runtime-cat, and web-api-cat into a single rendering + scripting pipeline. v1.5.1 wires the JS side of the IPC bridge: when a webview's script calls `__TAURI__.post_ipc_message(payload)`, our `NativeFn` shim fires the same `WebviewIpcHandler` that `send_ipc(request)` does, so a Tauri app's `tauri::Builder::invoke_handler` is reachable from JS running in boa-cat. Thread-local proxy state threads through the bare-fn-pointer `NativeFn` constraint; otherwise no shared mutable state. The Servo no-AI policy disqualifies upstream contribution; this is the AI-built parallel.
//! Demo binary: renders a small HTML page and shows it in a window.
//!
//! Run with `cargo run --bin demo`.  Close the window to exit.

use tauri_runtime_servocat::{Error, Viewport, render, run_window};

const HTML: &str = "<html><body>\
<h1>tauri-runtime-servocat</h1>\
<p>cosmic-text glyph raster, presented through a softbuffer window.</p>\
<p>close the window to exit.</p>\
</body></html>";

const CSS: &str = "
    body { background-color: white; padding: 24px; }
    h1 { color: navy; height: 48px; }
    p { color: black; height: 28px; }
";

fn main() -> Result<(), Error> {
    let viewport = Viewport::new(640, 480);
    let frame = render(HTML, CSS, viewport)?;
    run_window(frame, viewport)
}