Framework for development of xApps in Rust for the O-RAN Near-Realtime RIC. This framework primarily targets the O-RAN Software Community's RIC Platform.
This projects consists of the following crates.
rmr
- Rust bindings for the RMR library.xapp
- Public API for the XApp framework.rnib
- A wrapper around the protobuf definitions in theric-plt/nodeb-rnib
repository.sdl
- Implementation of Shared Data Layer for the RIC Platform in Rust, currently supports Redis backend.subscription-api
- Rust bindings for OpenAPI definitions for Subscription by xApps.registration-api
- Rust bindings for the OpenAPI definitions for xApps registration with RIC Application Manager.
-
The code uses
bindgen
to generate bindings forlibrmr_si.so
, which requireslibclang-dev
installed. Make surelibclang
is installed on your machine. -
Make sure that
librmr_si
and it's header files are available at/usr/local/lib
and/usr/local/include/rmr
directories respectively.-
On Debian-based systems, you can install RMR via .deb package as follows:
export RMRTAG=4.8.2 wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMRTAG}_amd64.deb/download.deb && dpkg -i rmr_${RMRTAG}_amd64.deb && rm -rf rmr_${RMRTAG}_amd64.deb wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMRTAG}_amd64.deb/download.deb && dpkg -i rmr-dev_${RMRTAG}_amd64.deb && rm -rf rmr-dev_${RMRTAG}_amd64.deb
-
Alternatively, follow the build instructions in the RMR repository.
-
-
Make sure that the external dependency inside
rnib
is satisfied as agit submodule
. This adds the protobuf files insidernib/external/nodeb-rnib/
directory. The submodules can be updated by -git submodule init git submodule update
An example Hello World Rust xApp is provided, which demonstrates the API usage. Please refer to the source code of Hello World Rust application.