PX4 autopilot firmware and ROS both have quite nice message-queue frameworks and I am looking for something similar for all my inter-thread/inter-process/inter-machine communication needs in embedded systems.
Short description for those not familiar with either of these projects:
There is a message bus at core. Each message has a topic (for example, /sensor/accelerometer). There is a single master which handles message filtering and routing. Nodes can subscribe to these topics and can also be publishers.
I find this architecture very appealing for building soft-realtime embedded systems for several reasons (discussion of which exceeds 2000 char limit).
I am looking for library/framework that provides this functionality.
Currently I have looked at:
- RabbitMQ and other AMQP projects- they seem to be more geared towards large, distributed systems with a lot of nodes. As a result, their binary size is large and RabbitMQ also requires Erlang VM. I would prefer something that can be linked in my master process/supervisor.
- ZeroMQ and nanomsg- they provide low level primitives I could use to build such architecture myself, but I'd prefer a ready solution.
- Just using ROS- it's PITA to build on non-supported embedded OSes and it contains a lot of stuff I don't need.
Question is: is there something out there that I could use, without building the infrastructure myself?