In OpenWrt we commonly use ubus for all kinds of communication. It can provide info from various software as well as request various actions. Nevertheless, not every part of OpenWrt has a daemon that can register itself using
ubus. For an example
opkg are command-line tools without any background process running all the time.
It would be not efficient to write a daemon for every software like this and run them independently. This is why
rpcd was developed. It’s a tiny daemon with support for plugins using trivial API. It loads library
.so files and calls init function of each of them.
There are few small plugins distributed with the
rpcd sources. Two of them (
uci) are built-in, others are optional and have to be build as separated
.so libraries. Apart from that there are other projects providing their own plugins.
See details here: rpcd: OpenWrt ubus RPC daemon for backend server