An open-source framework for building O-RAN applications
OTAF (Open Telecom Application Framework) is an open-source framework for writing applications that run on an open O-RAN network. It provides a set of Go SDKs, one for each type of O-RAN application: rApps, xApps and dApps.
Each SDK works as a starting template. You import it, add the logic your application needs, and run one command to produce a package the O-RAN platform can install. The framework handles the parts every application shares, such as configuration, data ingest, the platform interfaces, health and metrics, error handling and packaging, so you can focus on what your application actually does. OTAF is fully O-RAN compliant, and the coRAN LABS applications built on it are open source as well.
Framework and applications released under Apache 2.0.
Built to the O-RAN interfaces: R1, A1, O1, E2 and E3.
Written in Go 1.23+, with one SDK per application type.
Use the SDKs to build your own apps, or run the coRAN LABS ones.
One SDK for each application type, over a shared foundation that every application inherits
Developers write the application logic on top; operators run the result on their SMO and RAN. Each SDK exposes a small application surface and connects to the platform through the standard O-RAN interfaces, while a shared foundation provides the runtime, resilience, security and packaging common to all three.
One Go SDK per application type. Each is a starting template with the platform interfaces and shared foundation already in place.
For rApps in the Non-RT RIC. Application surface Handle / Snapshot, over R1, A1 and O1.
For xApps in the Near-RT RIC. Application surface OnIndication / Control, over E2.
For dApps in the base station. Application surface OnSlot / Act, over E3.
The same application model across all three O-RAN control timescales
Each SDK is organised the same way: a small application surface where you add your logic, platform clients that speak the O-RAN interfaces, the data and decision layer, and the ingest path. Below them all sits a shared foundation, and the same commission → prime → create instance → deploy lifecycle applies to every application.
The shared foundation every application inherits. Written in Go, with each package optional.
Clients for the O-RAN interfaces: R1 for data in and out, A1 for policies, O1 for node configuration, and E2 and E3 for the faster application types.
HTTP and Kafka sources feed your application through one path. When the queue fills, the source is slowed down rather than dropping data, and both cases are counted.
You classify a failure once, and retry, logging, dead-letter handling and metrics all follow from that single choice, so the parts cannot fall out of step.
Liveness, readiness, a status endpoint and Prometheus metrics are built in. Liveness reports only on the application, so a dependency outage does not cause a restart loop.
One command builds the CSAR package the platform installs, and validates it offline against the same rules the platform uses before you upload.
Test your logic on a laptop against stand-in platform servers, so your code takes the same path it does in production without needing a cluster.
OTAF is released under Apache 2.0. The framework, the SDKs and the coRAN LABS applications built on it are all open source. You can read the code, build your own rApps and xApps on the same SDKs, or run and adapt the applications we publish.
The rApp SDK is available now. Read the code, build your own application, or talk to us about your use case.