This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision |
| docs:guide-developer:rpcd [2018/10/28 16:16] – stokito | docs:guide-developer:rpcd [2018/10/29 20:11] (current) – stokito |
|---|
| ====== RPC daemon ====== | ====== RPC daemon ====== |
| |
| ===== RPC daemon ===== | |
| |
| In OpenWrt we commonly use [[docs:techref:ubus|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 ''uci'' and ''opkg'' are command-line tools without any background process running all the time. | In OpenWrt we commonly use [[docs:techref:ubus|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 ''uci'' and ''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. | 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. |
| |
| | The code is published under [[wp>ISC_license|ISC license]] and can be found via git at [[https://git.openwrt.org/project/rpcd.git]]. |
| The code is published under ISC and can be found via git at [[https://git.openwrt.org/project/rpcd.git]]. | |
| |
| ==== Default plugins ==== | ==== Default plugins ==== |
| |
| There are few small plugins distributed with the '''rpcd'' sources. Two of them (''session'' and ''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. | There are few small plugins distributed with the ''rpcd'' sources. Two of them (''session'' and ''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: [[docs:techref:rpcd|rpcd: OpenWrt ubus RPC daemon for backend server]] | See details here: [[docs:techref:rpcd|rpcd: OpenWrt ubus RPC daemon for backend server]] |