Skip to content

Eclipse uProtocol 介紹

Eclipse uProtocol 最早是由 GM (General Motors) 所提出,並且貢獻給 Eclipse Foundation,期望可以兼容多種不同協定,例如 MQTT、SOME/IP、Binder 等等,最終成為車用協定的標準。 不過可惜的是在 2024 年 GM 大裁員後,他們已經放棄經營這塊,目前是由社群自主經營為主。

架構

uProtocol 的目標是提供一致的 API 讓上層軟體呼叫,他們不用在乎底下真實實際協定怎麼運作。 如果要比喻的話,uProtocol 之於車用,就像是 ROS 之於機器人一樣。 最終目標是所有開發者都能遵循一樣的 API,讓上層軟體可以重複被使用,而不用換個平台就要重新開發一次。

目前 uProtocol 支援多種程式語言,不過 Rust 是目前功能最成熟的。 不同程式語言有 up-xxx 的實作框架,例如 up-rust、up-cpp 等等, 而底層的實際傳輸的協定就可以用這個框架來指定不同 API 行為應該如何,例如 up-transport-zenoh-rust 等等。

支援的程式語言

支援的協定有

不同 protocol 之間如果需要彼此溝通轉換,就會需要使用 up-streamer-rust 來連接,目前支援 Zenoh、MQTT、SOME/IP 之間的轉換。

常用連結