This proposal has been approved and the Eclipse eCAL (enhanced Communication Abstraction Layer) project has been created.
Visit the project page for the latest information and development.

Eclipse eCAL (enhanced Communication Abstraction Layer)

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

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.

Scope

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.

Description

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.

Why Here?

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.

Project Scheduling
  • Release cycle is every 6 months - see releases
  • Current release is 5.10
Future Work

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

 

Initial Contribution
  • ​​​​​​Project owned by Continental
  • Project licensed under Apache 2.0 - see eCAL License
  • All thirdparty dependencies including licences are listed here
Source Repository Type