eCAL was originally developed by Continental Automotive out of the need of a communication middleware solution for rapid prototyping in the area of autonomous driving. It supports a wide range of operating systems and covers embedded hardware as well as high performance multi core systems.
Eclipse eCAL (enhanced Communication Abstraction Layer) provides a communication middleware for distributed computing systems written in C++ and designed for high performance / low latency communication. Besides this communication core Eclipse eCAL provides mature eco system tools for recording, replaying and monitoring data flows and for the automated startup and shutdown of a distributed system.
The Eclipse eCAL (enhanced Communication Abstraction Layer) provides a middleware that enables scalable, high performance interprocess communication on a single computer node or between different nodes in a computer network. Eclipse eCAL uses a publish-subscribe pattern to automatically connect different nodes in the network.
Eclipse eCAL is choosing the best available data transport mechanism for each link:
- Shared memory for local communication
- UDP / TCP for network communication
The Eclipse eCAL middleware solution enables rapid prototyping for those high performance distributed application by providing the following base features:
- intraprocess, interprocess and interhost communication
- different transport layer implementations (shared memory, UDP, TCP)
- publish/subscribe and server/client communication pattern
- different message serialization formats
- Windows and POSIX operating systems
- language bindings to C, C++, C#, Python, Rust, Go, M-Script
For full documentation see official eCAL documentation.
By abstracting software components from specific operating system API's and forcing the component provider to specify a clear software component interface (publish / subscribe or client / server) Eclipse eCAL simplifies and accelerates the development, the maintenance, the deployment and the integration and test of an overall AD system in a SDV setup.
- Release cycle is every 6 months - see releases
- Current release is 5.10
Project can be used as common integration platform for AD prototyping vehicles, simulation, test and validation environments. By using the existing powerful tools for recording, replay and monitoring and the support of multiple programming languages there is a wide range of different use cases.
We plan to:
- support more existing AD sensor system natively (first project with GeneSys ongoing)
- improve documentation by new (video) tutorials and more official doc pages
- integration in other open source solutions in the SDV Eclipse working group