eclipse-ecal/ecal

📦 eCAL - enhanced Communication Abstraction Layer. A high performance publish-subscribe, client-server cross-plattform middleware.

What it solves

eCAL solves the problem of high-performance interprocess communication (IPC) between different software nodes, whether they are on a single computer or distributed across a network. It provides a zero-configuration middleware that allows different processes to exchange data quickly and reliably without needing a complex central broker.

How it works

eCAL implements two primary communication patterns: publish-subscribe and server-client. It automatically selects the most efficient transport mechanism based on the connection: using shared memory for extremely fast local communication and UDP/TCP for network-based communication. It is brokerless and message-protocol agnostic, meaning users can use their preferred serialization formats like Google Protobuf, Flatbuffers, or CapnProto.

Who it’s for

It is designed for developers building distributed systems, robotics applications (integrating with ROS2), and simulation environments (integrating with Matlab Simulink).

Highlights

  • High Performance: Achieves throughputs between 1 and 20 GB/s.
  • Zero-Conf: Requires almost no configuration for communication details or Quality of Service (QoS) settings.
  • Brokerless Architecture: Eliminates the central point of failure and bottlenecks associated with with brokers.
  • Comprehensive Tooling: Includes built-in tools for recording, replaying, and monitoring data flows in real-time.
  • Cross-Platform: Supports Windows, Linux, and experimental support for QNX, MacOS, and FreeBSD.
  • ROS2 Integration: Can be used as a middleware layer (RMW) for ROS2 environments.

Related

  • Project
  • Project
  • Project
  • Project
  • Project