Secure Inter-Process Communication
A secure IPC framework providing authenticated message passing, access control, and robust communication channels between processes.
- Authenticated Messaging: Identity verification (Token-based)
- Message Queuing: Reliable async messaging
- Request/Response: RPC-style communication
- Rate Limiting: DoS protection
- Timeouts: Configurable operation timeouts
- Robust Error Handling: Explicit error reporting and safe memory management
Planned Features (Roadmap)
- Encrypted Channels: TLS for sensitive data
- Service Discovery: Automatic endpoint discovery
- mTLS & Capability-Based Access
#include <ipc-broker/broker.h>
int main() {
// Server side
ipc_broker_t *broker = ipc_broker_new();
ipc_service_t *service = ipc_service_create(broker, "my-service");
ipc_service_register_handler(service, "echo", echo_handler, NULL);
ipc_service_start(service);
// Client side
ipc_client_t *client = ipc_client_new(broker);
ipc_client_connect(client, "my-service");
ipc_message_t *msg = ipc_message_new("echo");
ipc_message_set_payload(msg, "Hello", 5);
ipc_message_t *reply = ipc_client_send(client, msg);
return 0;
}ipc-broker:
authentication:
required: true
method: token # Supported: none, token
rate_limiting:
enabled: true
max_messages_per_second: 1000
# Encryption and Discovery are currently not supported and will return IPC_ERR_NOT_SUPPORTED if enabled.
encryption:
enabled: false
discovery:
enabled: falseMIT License
git submodule add https://github.com/navinBRuas/_SecureExecutionEnvironment.git vendor/secure-executionUse vendor/secure-execution/ipc-broker for local builds and integration.
Refer to the C example above and module headers for API details.
Configure authentication, rate limiting, and timeouts via the YAML config or corresponding IPC broker configuration structures.
Current version: 0.1.0 (see VERSION.md).
See CHANGELOG.md for release history.