eIPC — Inter-Process Communication

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.

Go & C SDKs Pluggable Transports HMAC-SHA256 Pub/Sub Broker Audit Logging

Key Features

Secure, fast, and flexible inter-process communication

Go & C SDKs

First-class SDKs for both Go and C with idiomatic APIs, comprehensive examples, and full documentation for each language.

Pluggable Transports

Swap transport layers at runtime: TCP sockets, Unix domain sockets, shared memory (SHM), and named pipes — all behind a unified API.

HMAC-SHA256 Integrity

Every message includes HMAC-SHA256 signatures for tamper detection. Key rotation and per-channel secrets are built in.

Capability-Based Auth

Fine-grained access control using capability tokens. Services declare required capabilities; clients present tokens at connection time.

Pub/Sub Broker

Built-in publish/subscribe broker with topic wildcards, QoS levels, message persistence, and dead-letter queue support.

Policy Engine

Declarative YAML policies for rate limiting, message size limits, connection quotas, and service-level access rules.

Replay Protection

Nonce-based replay protection with configurable time windows. Prevents message replay attacks in security-critical applications.

JSON-Line Audit Logging

Structured JSON-line logs for every IPC event — connections, messages, auth decisions, errors — with configurable log sinks and rotation.

Quick Start

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

API Highlights

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