# eclipse-ecal/ecal

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

Repository: https://github.com/eclipse-ecal/ecal
Canonical: https://ross.abutalabs.com/products/ecal
Homepage: https://ecal.io
Language: C++
License: Apache-2.0
License Family: permissive
Topics: publish-subscribe, client-server, google-protobuf, shared-memory, autonomous-driving, interprocess-communication, ecal, middleware, message-protocol, ipc
Last push: 2026-08-19T14:19:18+00:00

## Health v2 (maintenance only)
Score: 87/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 65, longevity 100
- inputs: {"age_days": 2648, "days_push": 14, "days_rel": 153, "gap_med": 36, "n_releases_24m": 8}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1045, forks 219 (observed 2026-08-28T04:03:21.456752+00:00)

## What it is
eCAL is a high-performance, brokerless middleware for interprocess communication on a single machine or across a network, offering publish-subscribe and client-server patterns with automatic transport selection (shared memory, UDP, TCP). It includes tooling for recording, replay, and monitoring of data flows, with C++/C APIs and bindings for Python, C#, and Rust.

## Use cases
- send high-throughput sensor data between processes on one machine
- build pub/sub communication between nodes in a robot or vehicle network
- record and replay message streams for autonomous driving development
- replace ROS2 or ZeroMQ with a zero-configuration IPC middleware
- connect C++ and Python components over shared memory
- monitor live data flows across a distributed system

## When to choose
- you need very fast local IPC (GB/s) with shared memory transport
- you want brokerless pub/sub with near-zero configuration
- you work in robotics, autonomous driving, or simulation (Matlab Simulink, ROS2 integration)
- you need decentralized recording, replay, and monitoring tooling built in

## When to avoid
- you need broker-based messaging with persistent queues or guaranteed delivery
- you only need simple REST or HTTP APIs between services
- your stack is JVM or .NET only without C++/Python integration
- you need a lightweight single-language library rather than a full middleware ecosystem

## Facets
- artifact type: library
- maturity: active
- function: message-queue, serialization, rpc, middleware
- domain: microservices, autonomous-vehicles, robotics
- platform: cpp, python, cross-platform, windows
- tags: publish-subscribe, interprocess-communication, shared-memory, brokerless, client-server, protobuf, data-recording, hdf5, ros2, real-time, linux, macos

## Member repositories
- eclipse-ecal/ecal (main) score 87

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:21.456752+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:02:04.429741+00:00, confidence not recorded.
  - readme: https://github.com/eclipse-ecal/ecal (fetched 2026-08-28T04:03:21.456752+00:00, sha c1cb79bef57e)
  - homepage: https://ecal.io (fetched 2026-08-29T13:02:52.719240+00:00, sha 19dbfe305785)
- Data as of 2026-08-30T08:39:29.467469+00:00.
