acktor-ipc
Interprocess communication for the acktor actor framework.
About
acktor-ipc lets actors in different processes talk to each other over a transport of your choice. It introduces a Node actor that owns one or more listeners and per-connection Session actors that mediate traffic.
Installation
[]
= "1.0"
acktor-ipc already depends on acktor with the ipc feature enabled.
Concepts
- Node — a long-lived actor that holds the listener(s) for inbound connections, tracks the
active sessions, and owns the registry of remote-addressable / remote-spawnable actor types.
Send
Connect<C>to it to dial out. - Session — a per-connection actor that wraps a single
IpcConnection, routes inbound frames to the right local actor, forwards outbound messages, and correlates request/response tags. - RemoteAddressable (re-exported from
acktor) — derive on an actor (with#[message(M1, M2, ...)]) to declare the message types it can receive from other processes. Messages must implementMessageId,Encode, andDecode; theirResults must implementEncode+Decode. - RemoteSpawnable (re-exported from
acktor) — implement to allow other processes to spawn this actor on this node. #[remote]— attribute applied to theimpl Actor for ...block of a remote-addressable actor; required so the actor exposes a remote mailbox.
Example
A minimal message definition for IPC looks like:
use ;
use ;
use ;
See examples/pingpong for a complete client/server walkthrough using the
WebSocket transport.
Feature Flags
Defaults: derive.
| Feature | Purpose |
|---|---|
derive |
Re-exports the #[remote] attribute macro. |
pipe |
Pipe transport (Unix sockets / Windows pipes). |
websocket |
WebSocket transport. |
Neither transport is enabled by default — enable pipe and/or websocket to pick the transports you want.
License
This project is licensed under MIT.