🔗
eIPC
Inter-Process Communication
High-performance IPC library with zero-copy message passing, pub/sub, RPC, and shared memory — all with minimal overhead for real-time applications.
Platform FoundationC/C++Active Development
Key Features
Zero-Copy Message Passing — Lock-free ring buffers
Publish-Subscribe — QoS levels (best-effort, reliable)
Remote Procedure Call — Sync and async RPC
Shared Memory — Named regions with access control
Cross-Platform — eos, Linux, macOS, Windows
Transport Abstraction — In-process, IPC, network, serial
Discovery Service — Automatic service discovery
Architecture
Application Layer (Publisher, Subscriber, RPC) ├── eIPC Core (Serialization, Routing, QoS, Discovery) ├── In-Process (Ring Buffer) ├── IPC (Sockets) ├── Network (TCP/UDP) └── Serial (UART/SPI)
Code Example
c
#include <eipc/eipc.h>
#include <eipc/pubsub.h>
void sensor_publisher(void) {
eipc_node_t *node = eipc_node_create("sensor_hub");
eipc_publisher_t *pub = eipc_advertise(node,
"sensor/heartrate", EIPC_MSG_FLOAT32,
EIPC_QOS_RELIABLE);
while (1) {
float hr = read_heart_rate_sensor();
eipc_publish(pub, &hr, sizeof(hr));
eos_task_delay_ms(100);
}
}API Highlights
| Function | Description |
|---|---|
eipc_node_create() | Create a communication node |
eipc_advertise() | Create a publisher on a topic |
eipc_subscribe() | Subscribe to a topic |
eipc_publish() | Publish a message |
eipc_rpc_call() | Call a remote procedure |