pub mod api_server;
pub mod channel;
pub mod cli_bridge;
pub mod error;
pub mod event_stream;
pub mod file_channel;
pub mod graceful;
pub mod local_socket;
pub mod metrics;
pub mod pipe;
pub mod shm;
pub mod socket_server;
pub mod task_manager;
pub mod thread_channel;
pub mod waker;
#[cfg(feature = "async")]
pub mod async_channel;
#[cfg(unix)]
pub mod unix;
#[cfg(windows)]
pub mod windows;
pub use channel::{IpcChannel, IpcReceiver, IpcSender};
pub use error::{IpcError, Result};
pub use event_stream::{
event_types, Event, EventBus, EventBusConfig, EventFilter, EventPublisher, EventSubscriber,
};
pub use file_channel::{FileChannel, FileMessage, MessageType as FileMessageType};
pub use graceful::{
GracefulChannel, GracefulIpcChannel, GracefulNamedPipe, GracefulWrapper, OperationGuard,
ShutdownState,
};
pub use local_socket::{LocalSocketListener, LocalSocketStream};
pub use pipe::{AnonymousPipe, NamedPipe, PipeReader, PipeWriter};
pub use shm::SharedMemory;
pub use socket_server::{
Connection, ConnectionHandler, ConnectionId, ConnectionMetadata, FnHandler, Message,
SocketClient, SocketServer, SocketServerConfig,
};
pub use task_manager::{
CancellationToken, TaskBuilder, TaskFilter, TaskHandle, TaskInfo, TaskManager,
TaskManagerConfig, TaskStatus,
};
pub use thread_channel::{ThreadChannel, ThreadReceiver, ThreadSender};
pub use api_server::{
ApiClient, ApiServer, ApiServerConfig, Method, PathPattern, Request, Response, ResponseBody,
Router,
};
pub use metrics::{
metered_pair, AggregatedMetrics, ChannelMetrics, IntoMetered, MeteredChannel, MeteredReceiver,
MeteredSender, MeteredWrapper, MetricsSnapshot, WithMetrics,
};
pub use waker::{
BroadcastWaker, CallbackWaker, EventLoopWaker, ThreadWaker, WakeableChannel, WakeableWrapper,
};
#[cfg(feature = "async")]
pub use waker::TokioWaker;
pub use cli_bridge::{
parsers, CliBridge, CliBridgeConfig, CommandOutput, OutputType, ProgressInfo, ProgressParser,
WrappedChild, WrappedCommand, WrappedWriter,
};
#[cfg(feature = "async")]
pub use async_channel::{AsyncIpcChannel, AsyncIpcReceiver, AsyncIpcSender};
#[cfg(feature = "async")]
pub use async_channel::tokio_channel::{
AsyncThreadChannel, AsyncThreadReceiver, AsyncThreadSender,
};
#[cfg(feature = "async")]
pub use async_channel::{broadcast, oneshot};
#[cfg(all(feature = "async", feature = "backend-interprocess"))]
pub use local_socket::{AsyncLocalSocketListener, AsyncLocalSocketStream};
#[cfg(feature = "python-bindings")]
pub mod bindings;
#[cfg(feature = "python-bindings")]
pub use bindings::*;