Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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 abi3 wheel 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 (blocking run_sync() or asyncio run()).
  • 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.3.dev64

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for airpuls-ric-sdk 0.3.3.dev64
File Interpreter ABI Platform Actions
airpuls_ric_sdk-0.3.3.dev64-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.3.dev64-cp39-abi3-manylinux_2_34_x86_64.whl
airpuls_ric_sdk-0.3.3.dev64-cp39-abi3-manylinux_2_34_aarch64.whl CPython 3.9 abi3 Linux glibc 2.34+ ARM64 Details for airpuls_ric_sdk-0.3.3.dev64-cp39-abi3-manylinux_2_34_aarch64.whl

Total release size: 11.8 MB

Release files / airpuls_ric_sdk-0.3.3.dev64-cp39-abi3-manylinux_2_34_x86_64.whl

Download URL airpuls_ric_sdk-0.3.3.dev64-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
d211275838ab18811f6c22515dc4558c451399564da7c39f7aac01a2d87f491d
BLAKE2b-256 checksum
How to use checksums
6a57eddec9a981a46d64219d4ca5abff1c4458d5a60219ff77d8fe2cd15f66ce
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.3.dev64-cp39-abi3-manylinux_2_34_aarch64.whl

Download URL airpuls_ric_sdk-0.3.3.dev64-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
6c144d2816b643c1da02a393daf7efd5bf9fd3f9dbddcb04d6f0cf3a5574e858
BLAKE2b-256 checksum
How to use checksums
de77579d1d1490cf016bef98c4036604a6db0f64065b195932e93c53e6f17026
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.3.dev64

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page