airpuls-ric-sdk
Python xApp SDK for the airpuls Near-RT RIC — a clean-room, spec-compliant O-RAN E2 implementation.
The package wraps the native libric-client xApp client library in a
Pythonic API. The binary wheel is self-contained: the native client,
the E2SM codecs, and their shared-library dependencies are bundled, so
pip install needs no compiler and no system packages.
Supported platform
- OS / architecture: Linux x86_64 and aarch64, glibc ≥ 2.34 (Ubuntu 22.04+, Debian 12+, RHEL/Alma/Rocky 9+)
- Python: CPython ≥ 3.9 (one
abi3wheel covers all versions)
Other platforms are not supported at this time.
Install
pip install airpuls-ric-sdk
The distribution is named airpuls-ric-sdk; the import stays
import airpuls_ric_sdk
What you get
- E2 node discovery — node available/lost/capabilities-changed callbacks, RAN Function inspection by ID or OID.
- Six service models — KPM, RC, LLC, AIR, CCC, and EPI, each with typed subscription builders and indication decoding.
- Subscribe / Indication / Control / Query — periodic and event-triggered REPORT subscriptions, INSERT indications with CONTROL answers, synchronous and asynchronous RIC Control, RC QUERY.
BaseXApp— batteries-included xApp base class: connect, reconnect with backoff, SM registration, signal handling, event loop (blockingrun_sync()or asynciorun()).- Telemetry sinks — declarative fan-out of measurements and
events to Redis and InfluxDB, configured from
xapp.yml.
Quick start
An xApp reads its parameters from a YAML config file:
# my-xapp.yml
ric:
endpoint: "tcp://192.168.2.96:36422" # xApp IPC endpoint of the RIC
xapp:
deployment_name: "my-xapp"
from airpuls_ric_sdk import kpm_plugin_get, KPM_RAN_FUNC_ID
from airpuls_ric_sdk.xapp import BaseXApp, setup_logging
class MyXApp(BaseXApp):
XAPP_TYPE = "my-xapp"
XAPP_VERSION = "1.0.0"
def plugins(self):
return [kpm_plugin_get()]
def on_e2_node_available(self, client, node):
# Build and send a KPM subscription here.
...
def on_indication(self, client, sub_id, node, ran_func_id, header, data):
if ran_func_id != KPM_RAN_FUNC_ID:
return
for block in data.blocks:
for m in block.measurements:
print(f"{m.name} = {m.value}")
if __name__ == "__main__":
setup_logging()
app = MyXApp("my-xapp.yml")
app.run_sync()
Lower-level entry points (RicClient, RicXappConfig, subscription
builders, sync/async control) are exported from airpuls_ric_sdk
directly for xApps that integrate the client into their own event
loop via poll_fd + dispatch().
License
Apache License 2.0 (Apache-2.0). © airpuls GmbH.
The Linux wheels also bundle third-party shared libraries — GLib and
its GIO TLS module, GnuTLS and the libraries they use — under their
own licences, most of them the GNU LGPL. The NOTICE file in the
wheel's .dist-info/licenses/ names each of them, their licence texts
are beside it, and .dist-info/sboms/auditwheel.cdx.json lists their
exact versions.
Metadata
Release files for airpuls-ric-sdk 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.34+ x86-64 | Details for airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_x86_64.whl |
| airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.34+ ARM64 | Details for airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_aarch64.whl |
Total release size: 11.7 MB
Release files / airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_x86_64.whl
| Download URL | airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | CPython 3.9 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
73ed3b92c78236decbcaba849e0f39b76fa1a7cc292b0423bb89fc169c6a018b
|
|
BLAKE2b-256 checksum How to use checksums |
8fe1dd0472c8d0bab34814ec8ca152101c1d15bfc8962a461e264224501f1948
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_aarch64.whl
| Download URL | airpuls_ric_sdk-0.3.2-cp39-abi3-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.9 Linux glibc 2.34+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e5fb4a45ec52df02d066d3d0c2d67658a518b1893feda6f1b43efa171fadc054
|
|
BLAKE2b-256 checksum How to use checksums |
e8240e1fe3962f5d9d93b52844bf89fae92528f982461523fdc5d8b9b95fa30c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for airpuls-ric-sdk 0.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.