eclipse-ecal/ecal

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

解决的问题

eCAL 解决了在单台计算机或跨网络的不同软件节点之间进行高性能进程间通信(IPC)的问题。它提供了一种零配置的中间件,使不同进程能够快速且可靠地交换数据,而无需复杂的中央代理。

工作原理

eCAL 实现了两种主要的通信模式:发布-订阅服务器-客户端。它会根据连接自动选择最高效的传输机制:在本地通信中使用 共享内存 实现极高的速度,在网络通信中使用 UDP/TCP。它是无代理的,且与消息协议无关,用户可以使用自己偏好的序列化格式,如 Google Protobuf、Flatbuffers 或 CapnProto。

适用人群

专为开发分布式系统、机器人应用(与 ROS2 集成)以及仿真环境(与 Matlab Simulink 集成)的开发者设计。

主要亮点

  • 高性能:吞吐量可达 1 到 20 GB/s。
  • 零配置:几乎无需配置通信细节或服务质量(QoS)设置。
  • 无代理架构:消除了与代理相关的单点故障和性能瓶颈。
  • 全面的工具支持:内置工具支持数据流的实时记录、回放和监控。
  • 跨平台支持:支持 Windows、Linux,对 QNX、MacOS 和 FreeBSD 提供实验性支持。
  • ROS2 集成:可作为 ROS2 环境中的中间件层(RMW)使用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目