imgeorgiev / ecal

eCAL - enhanced Communication Abstraction Layer

Home Page:http://ecal.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

eCAL - enhanced Communication Abstraction Layer

Copyright (c) 2020, Continental Corporation.

🏠 http://ecal.io

License

License

Build States

Build Windows Server 2019

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 - with Iceoryx binding even faster)
  • provides publish / subscribe and client / server patterns
  • is designed brokerless
  • provides a C++ and C interface for easy integration into other languages (like python or csharp)
  • runs on windows, linux, 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

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 ?

  • macos, qnx platform support
  • more language bindings (rust, go-lang)
  • and ?? tell us about your use case :-)

Friends@GitHub using eCAL

Links

About

eCAL - enhanced Communication Abstraction Layer

http://ecal.io

License:Apache License 2.0


Languages

Language:C++ 90.0%Language:CMake 4.8%Language:C 3.1%Language:Python 1.1%Language:Objective-C 0.6%Language:Inno Setup 0.2%Language:C# 0.2%Language:Batchfile 0.1%Language:PowerShell 0.0%