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/24 22:13] – [Default plugins] 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 [[git://git.openwrt.org/project/rpcd.git]] or via http at [[https://git.openwrt.org/?p=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]] |