1pub mod api_server;
37pub mod channel;
38pub mod cli_bridge;
39pub mod error;
40pub mod event_stream;
41pub mod file_channel;
42pub mod graceful;
43pub mod local_socket;
44pub mod metrics;
45pub mod pipe;
46pub mod resource_link;
47pub mod shm;
48pub mod socket_server;
49pub mod task_manager;
50pub mod thread_channel;
51pub mod thread_pump;
52pub mod waker;
53
54#[cfg(feature = "async")]
56pub mod async_channel;
57
58#[cfg(unix)]
59pub mod unix;
60
61#[cfg(windows)]
62pub mod windows;
63
64pub use channel::{IpcChannel, IpcReceiver, IpcSender};
66pub use error::{IpcError, Result};
67pub use event_stream::{
68 event_types, Event, EventBus, EventBusConfig, EventFilter, EventPublisher, EventSubscriber,
69 McpProgressPayload,
70};
71pub use file_channel::{FileChannel, FileMessage, MessageType as FileMessageType};
72pub use graceful::{
73 GracefulChannel, GracefulIpcChannel, GracefulNamedPipe, GracefulWrapper, OperationGuard,
74 ReentrantDispatch, ShutdownState,
75};
76pub use local_socket::{LocalSocketListener, LocalSocketStream};
77pub use pipe::{AnonymousPipe, NamedPipe, PipeReader, PipeWriter};
78pub use resource_link::{ResourceKind, ResourceLink, ResourceLinkInfo};
79pub use shm::SharedMemory;
80pub use socket_server::{
81 Connection, ConnectionHandler, ConnectionId, ConnectionMetadata, FnHandler, Message,
82 SocketClient, SocketServer, SocketServerConfig,
83};
84pub use task_manager::{
85 CancellationToken, TaskBuilder, TaskFilter, TaskHandle, TaskInfo, TaskManager,
86 TaskManagerConfig, TaskStatus,
87};
88pub use thread_channel::{ThreadChannel, ThreadReceiver, ThreadSender};
89pub use thread_pump::{MainThreadPump, PumpStats, ThreadAffinity};
90
91pub use api_server::{
93 ApiClient, ApiServer, ApiServerConfig, Method, PathPattern, Request, Response, ResponseBody,
94 Router,
95};
96
97pub use metrics::{
99 metered_pair, AggregatedMetrics, ChannelMetrics, IntoMetered, MeteredChannel, MeteredReceiver,
100 MeteredSender, MeteredWrapper, MetricsSnapshot, WithMetrics,
101};
102
103pub use waker::{
105 BroadcastWaker, CallbackWaker, EventLoopWaker, ThreadWaker, WakeableChannel, WakeableWrapper,
106};
107
108#[cfg(feature = "async")]
109pub use waker::TokioWaker;
110
111pub use cli_bridge::{
113 parsers, CliBridge, CliBridgeConfig, CommandOutput, OutputType, ProgressInfo, ProgressParser,
114 WrappedChild, WrappedCommand, WrappedWriter,
115};
116
117#[cfg(feature = "async")]
119pub use async_channel::{AsyncIpcChannel, AsyncIpcReceiver, AsyncIpcSender};
120
121#[cfg(feature = "async")]
122pub use async_channel::tokio_channel::{
123 AsyncThreadChannel, AsyncThreadReceiver, AsyncThreadSender,
124};
125
126#[cfg(feature = "async")]
127pub use async_channel::{broadcast, oneshot};
128
129#[cfg(all(feature = "async", feature = "backend-interprocess"))]
131pub use local_socket::{AsyncLocalSocketListener, AsyncLocalSocketStream};
132
133#[cfg(feature = "python-bindings")]
135pub mod bindings;
136
137#[cfg(feature = "python-bindings")]
138pub use bindings::*;