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)使用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案