Skip to content
/ ecal Public
forked from eclipse-ecal/ecal

📦 eCAL - enhanced Communication Abstraction Layer. A fast publish-subscribe cross-plattform middleware using Shared Memory and UDP.

License

Notifications You must be signed in to change notification settings

jiangxll/ecal

Repository files navigation

eCAL - enhanced Communication Abstraction Layer

Copyright (c) 2020, Continental Corporation.

🏠 http://ecal.io

License

License

Build States

Build Windows Server 2019

Build Ubuntu 18.04

Build Ubuntu 20.04

Build Ubuntu 20.04 (Iceoryx)

Build macOS Catalina 10.15

Preface

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

Links

About

📦 eCAL - enhanced Communication Abstraction Layer. A fast publish-subscribe cross-plattform middleware using Shared Memory and UDP.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.3%
  • CMake 3.9%
  • C 3.2%
  • Python 1.0%
  • Shell 0.3%
  • Inno Setup 0.1%
  • Other 0.2%