Expand description
§ipckit
A cross-platform IPC (Inter-Process Communication) library for Rust and Python.
§Features
- Pipes: Anonymous and named pipes for parent-child process communication
- Shared Memory: Fast data sharing between processes using memory-mapped regions
- Unix Domain Sockets / Named Pipes: Bidirectional communication channels
- Message Channels: High-level message passing with serialization support
- File Channel: Simple file-based IPC for frontend-backend communication
- Thread Channel: High-performance intra-process thread communication
- Event Stream: Real-time publish-subscribe event system
- Task Manager: Task lifecycle management with progress tracking
- Socket Server: Multi-client socket server (like Docker’s socket)
- API Server: HTTP-over-Socket RESTful API service
- Metrics: Performance monitoring and metrics collection
- Waker: Event loop integration for GUI/async frameworks
§Example
use ipckit::{NamedPipe, IpcError};
fn main() -> Result<(), IpcError> {
// Create a named pipe server
let server = NamedPipe::create("my_pipe")?;
// In another process, connect as client
// let client = NamedPipe::connect("my_pipe")?;
Ok(())
}Re-exports§
pub use channel::IpcChannel;pub use channel::IpcReceiver;pub use channel::IpcSender;pub use error::IpcError;pub use error::Result;pub use event_stream::event_types;pub use event_stream::Event;pub use event_stream::EventBus;pub use event_stream::EventBusConfig;pub use event_stream::EventFilter;pub use event_stream::EventPublisher;pub use event_stream::EventSubscriber;pub use file_channel::FileChannel;pub use file_channel::FileMessage;pub use file_channel::MessageType as FileMessageType;pub use graceful::GracefulChannel;pub use graceful::GracefulIpcChannel;pub use graceful::GracefulNamedPipe;pub use graceful::GracefulWrapper;pub use graceful::OperationGuard;pub use graceful::ShutdownState;pub use local_socket::LocalSocketListener;pub use local_socket::LocalSocketStream;pub use pipe::AnonymousPipe;pub use pipe::NamedPipe;pub use pipe::PipeReader;pub use pipe::PipeWriter;pub use socket_server::Connection;pub use socket_server::ConnectionHandler;pub use socket_server::ConnectionId;pub use socket_server::ConnectionMetadata;pub use socket_server::FnHandler;pub use socket_server::Message;pub use socket_server::SocketClient;pub use socket_server::SocketServer;pub use socket_server::SocketServerConfig;pub use task_manager::CancellationToken;pub use task_manager::TaskBuilder;pub use task_manager::TaskFilter;pub use task_manager::TaskHandle;pub use task_manager::TaskInfo;pub use task_manager::TaskManager;pub use task_manager::TaskManagerConfig;pub use task_manager::TaskStatus;pub use thread_channel::ThreadChannel;pub use thread_channel::ThreadReceiver;pub use thread_channel::ThreadSender;pub use api_server::ApiClient;pub use api_server::ApiServer;pub use api_server::ApiServerConfig;pub use api_server::Method;pub use api_server::PathPattern;pub use api_server::Request;pub use api_server::Response;pub use api_server::ResponseBody;pub use api_server::Router;pub use metrics::metered_pair;pub use metrics::AggregatedMetrics;pub use metrics::ChannelMetrics;pub use metrics::IntoMetered;pub use metrics::MeteredChannel;pub use metrics::MeteredReceiver;pub use metrics::MeteredSender;pub use metrics::MeteredWrapper;pub use metrics::MetricsSnapshot;pub use metrics::WithMetrics;pub use waker::BroadcastWaker;pub use waker::CallbackWaker;pub use waker::EventLoopWaker;pub use waker::ThreadWaker;pub use waker::WakeableChannel;pub use waker::WakeableWrapper;pub use cli_bridge::parsers;pub use cli_bridge::CliBridge;pub use cli_bridge::CliBridgeConfig;pub use cli_bridge::CommandOutput;pub use cli_bridge::OutputType;pub use cli_bridge::ProgressInfo;pub use cli_bridge::ProgressParser;pub use cli_bridge::WrappedChild;pub use cli_bridge::WrappedCommand;pub use cli_bridge::WrappedWriter;
Modules§
- api_
server - API Server
- channel
- High-level message channel for IPC
- cli_
bridge - CLI Bridge
- error
- Error types for ipckit
- event_
stream - Event Stream - Real-time Event Push System
- file_
channel - File-based IPC Channel
- graceful
- Graceful shutdown mechanism for IPC channels
- local_
socket - Local Socket implementation for IPC
- metrics
- Channel Metrics
- pipe
- Pipe implementations for IPC
- shm
- Shared Memory implementation for IPC
- socket_
server - Socket Server - Unix Domain Socket / Named Pipe Server Module
- task_
manager - Task Manager - Task Registration and Lifecycle Management
- thread_
channel - Thread Channel for intra-process thread communication
- unix
- Unix-specific IPC utilities
- waker
- Event Loop Waker