Copyright (c) 2020, Continental Corporation.
The enhanced Communication Abstraction Layer (eCAL) is a middleware that enables scalable, high performance interprocess communication on a single computer node or between different nodes in a computer network. eCAL uses a publish / subscribe pattern to automatically connect different nodes in the network. It's choosing the best available data transport mechanisms - UDP for network communication and High Performance Shared Memory for local communication.
eCAL
- is fast (1 - 10 GB/s depends on payload size - check measured performance here)
- provides publish / subscribe and client / server patterns
- is designed brokerless
- provides a C++ and C interface for easy integration into other languages (like python, csharp or rust)
- supports intel and arm platforms
- has powerful tools for recording, replay and monitoring all your data flows - decentralized
- integrates gently into your ROS2 environement with the brand new eCAL RMW
eCAL runs on
- Windows (stable)
- Linux (stable)
- QNX (stable)
- MacOS (experimental)
- FreeBSD (experimental)
Really ?? Just another pub/sub middleware ? Why ? What is the different to my beloved fully featured DDS ?
- it's stupid simple - no complex configuration effort for all kind of communication details or QOS settings
- it's message protocol agnostic - choose the message protocol that fits to your needs like Google Protobuf, CapnProto, Flatbuffers ..
- it's using the standardized recording format HDF5
What is on the roadmap ?
- more language bindings (rust, go-lang)
- and ?? tell us about your use case :-)
GitHub project using / used by eCAL
- eCAL Documentation: https://continental.github.io/ecal
- Getting Started Tutorial: https://continental.github.io/ecal/getting_started/introduction
- Downloads & Releases: https://github.com/continental/ecal/releases