{"repo":"TaoistLuo/OmniBinder","free":true,"listed":false,"github":"https://github.com/TaoistLuo/OmniBinder","clone":"git clone https://github.com/TaoistLuo/OmniBinder.git","description":"OmniBinder is a lightweight service communication middleware for embedded Linux and distributed service systems, providing service discovery, RPC, pub/sub, automatic SHM/TCP transport selection, and CLI-based service inspection and invocation.","language":"C++","stars":54,"topics":["cli","distributed-systems","embedded-linux","ipc","middleware","mqtt","pubsub","rpc","service-discovery","shared-memory"],"license":"MIT","category":"cli-tools","readme_excerpt":"OmniBinder 中文 English 面向嵌入式/分布式服务场景的跨平台服务通信中间件 OmniBinder 是一个面向嵌入式、桌面、分布式多板系统和多服务协作场景的跨平台服务通信中间件。当前支持 Linux 和 Windows ，规划支持 Android、鸿蒙、FreeRTOS/ESP32 等。理论上，任何支持 TCP socket 和 C++11 编译器的平台均可适配——仅需实现约 20 个平台抽象函数，详见平台适配指南。 它的目标不是只解决“进程怎么传数据”，而是解决 多个服务之间如何以统一方式完成注册、发现、调用、广播和状态感知 。 通过提供统一的服务通信与管理入口，以及自动选择的 SHM/TCP 数据通道，OmniBinder 让跨进程、跨板、跨设备的服务协作都能以一致模型完成集成。 一句话概括： OmniBinder 是在分布式服务之间充当通信桥梁的中间件，让服务与服务之间的连接、调用和数据分发标准化。 --- 项目背景 在嵌入式、工业和边缘计算场景中，一个完整系统通常不是单体程序，而是由多个服务共同协作： 传感器采集、算法处理、设备控制、网关转发、HMI 展示、日志与监控等模块，往往运行在不同进程、 不同板卡，甚至不同设备上。 真正困难的地方，往往不是“某一次 socket 发送”，而是 如何把这些分散的服务稳定地连接起来，形成可发现、可调用、可广播、可感知状态的通信桥梁 ： - 服务启动后如何被其他模块发现 - 服务之间如何统一调用，而不是每个模块各写一套通信协议 - 状态和事件如何广播给多个消费者 - 某个服务异常退出后，其它模块如何感知并恢复 - 同机和跨机部署变化时，业务层如何不改接口 与常见方案的定位区别 OmniBinder 并不是要替代所有已有通信框架，而是面向一类更具体的工程问题： 当系统由多个服务组成，并且这些服务可能分布在同机、跨板、跨设备环境中时，如何用一套统一模型完成服务管理与服务间通信。 从这个角度看，常见方案可以这样理解： 方案类别 代表方案 更适合的场景 与 OmniBinder 的区别 --- --- --- --- 本地 IPC / 服务总线 Android Binder, D-Bus 同机服务化通信、系统服务编排、本地进程协作 更偏本地系统内通信；若要继续覆盖跨板、跨设备场景，通常还需要额外的远程通信机制。与此同时，业务侧往往还要自行统一接口约定、封装服务端/客户端接入方式 RPC 框架 gRPC, Thrift, Cap'n Proto RPC 标准化接口定义、跨语言服务调用、典型分布式系统 这类方案通常也具备成熟的接口描述与代码生成能力；OmniBinder 的区别不在于“有没有 codegen”，而在于把 IDL、Stub/Proxy 生成、同机 IPC 与跨设备通信模型 收敛到一套更统一的运行时中 消息中间件 / Broker MQTT, RabbitMQ, NATS, Kafka 事件分发、异步解耦、消息路由、状态上报 更偏异步消息模型；若系统还需要服务发现、同步 RPC 和服务生命周期感知，通常要与其它机制配合。业务接口、请求响应语义和类型封装也往往需要额外约定 消息通信库 ZeroMQ 等 灵活的点对点、发布订阅、pipeline 通信拓扑 更偏底层通信抽象；若要形成完整服务管理模型，通常还需补充注册发现、接口约定、Stub/Proxy 封装和运行时管理 领域型分布式总线 ROS 2, DDS, SOME-IP 机器人、车载、实时控制、强数据分发导向系统 往往伴随更明确的领域假","default_branch":null,"files":null,"tree":[],"storefront":"/r/TaoistLuo","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TaoistLuo/OmniBinder/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}