Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

IPC Broker

Secure Inter-Process Communication

A secure IPC framework providing authenticated message passing, access control, and robust communication channels between processes.

Features

  • 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

Quick Start

#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;
}

Configuration

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: false

License

MIT License

Standalone Installation

git submodule add https://github.com/navinBRuas/_SecureExecutionEnvironment.git vendor/secure-execution

Use vendor/secure-execution/ipc-broker for local builds and integration.

Usage

Refer to the C example above and module headers for API details.

Configuration

Configure authentication, rate limiting, and timeouts via the YAML config or corresponding IPC broker configuration structures.

Version

Current version: 0.1.0 (see VERSION.md).

Changelog

See CHANGELOG.md for release history.