Crate ipckit

Crate ipckit 

Source
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 shm::SharedMemory;
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