Secure, real-time IPC framework with Go and C SDKs. Pluggable transports, HMAC-SHA256, capability-based auth, pub/sub broker, and JSON-line audit logging.
Secure, fast, and flexible inter-process communication
First-class SDKs for both Go and C with idiomatic APIs, comprehensive examples, and full documentation for each language.
Swap transport layers at runtime: TCP sockets, Unix domain sockets, shared memory (SHM), and named pipes — all behind a unified API.
Every message includes HMAC-SHA256 signatures for tamper detection. Key rotation and per-channel secrets are built in.
Fine-grained access control using capability tokens. Services declare required capabilities; clients present tokens at connection time.
Built-in publish/subscribe broker with topic wildcards, QoS levels, message persistence, and dead-letter queue support.
Declarative YAML policies for rate limiting, message size limits, connection quotas, and service-level access rules.
Nonce-based replay protection with configurable time windows. Prevents message replay attacks in security-critical applications.
Structured JSON-line logs for every IPC event — connections, messages, auth decisions, errors — with configurable log sinks and rotation.
Install eIPC and start communicating between processes
# Install the Go SDK
go get github.com/embeddedos-org/eIPC
# Create a simple server
import "github.com/embeddedos-org/eIPC/server"
srv := server.New(server.WithTransport("unix", "/tmp/eipc.sock"))
srv.Handle("greeting", func(msg *ipc.Message) {
msg.Reply([]byte("Hello from eIPC!"))
})
srv.Listen()
# Or use the C SDK
git clone https://github.com/embeddedos-org/eIPC.git
cd eIPC && cmake -B build && cmake --build build
Core IPC modules
| Module | Description | Package / Header |
|---|---|---|
transport |
Pluggable transport layer — TCP, Unix, SHM, Pipes | eipc/transport |
auth |
Capability-based authentication and token management | eipc/auth |
crypto |
HMAC-SHA256 signing, nonce generation, key rotation | eipc/crypto |
broker |
Pub/sub broker — topics, wildcards, QoS, persistence | eipc/broker |
policy |
Policy engine — rate limits, quotas, access rules | eipc/policy |
audit |
JSON-line audit logging with configurable sinks | eipc/audit |
client |
Client SDK — connect, send, receive, subscribe | eipc/client |
server |
Server SDK — listen, handle, broadcast, middleware | eipc/server |