1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Inter-Process Communication (IPC) for sandbox
//!
//! This module provides type-safe IPC between sandboxed processes and the host.
//! Communication happens over loopback TCP using MessagePack serialization.
//!
//! # Example
//!
//! ```rust,ignore
//! use serde::{Serialize, Deserialize};
//! use heel::ipc::{IpcCommand, IpcRouter};
//!
//! #[derive(Serialize, Deserialize, Default)]
//! struct WebSearch { query: String }
//!
//! #[derive(Serialize, Deserialize)]
//! struct WebSearchResult { items: Vec<String> }
//!
//! impl IpcCommand for WebSearch {
//! type Response = WebSearchResult;
//!
//! fn name(&self) -> String { "web_search".to_string() }
//!
//! async fn handle(&mut self) -> WebSearchResult {
//! WebSearchResult { items: do_search(&self.query).await }
//! }
//! }
//!
//! let router = IpcRouter::new()
//! .register(WebSearch::default());
//! ```
pub
pub use IpcCommand;
pub use IpcError;
pub use ;
// IpcServer is internal - used by Sandbox, not exposed to users
pub use IpcServer;