This project has been archived by its maintainers, and is no longer receiving any updates.
OpenSDK
Open source SDK to abstract CAMARA/GSMA Transformation Functions (TFs) for Edge Cloud platforms, 5G network cores and O-RAN solutions.
Features
- Abstract CAMARA Transformation Functions (TFs)
- Unified Python SDK for interacting with Edge Cloud platforms, 5G Core solutions, and O-RAN solutions.
- Modular and extensible adapter structure
API & Platform Support Matrix
CAMARA APIs
| API Name | Version |
|---|---|
| Edge Application Management | v0.9.3-wip (commit: 79aa595) |
| Quality-on-Demand | v1.0.0 |
| Location Retrieval | v0.4.0 |
| Traffic Influence | v0.8.1 |
EdgeCloud Platforms
| Platform | Status |
|---|---|
| Kubernetes | ✅ |
| i2Edge | ✅ |
| aerOS | ✅ |
Network Adapters
| Platform | NEF Version | QoD | Location Retrieval | Traffic Influence |
|---|---|---|---|---|
| Open5GS | v1.2.3 TS 29.122 (v17.12.0) | ✅ | ✅ | ❌ |
| Open5GCore | v1.2.3 TS 29.122 (v17.12.0) | ✅ | ❌ | ❌ |
| OAI | v1.2.3 TS 29.122 (v17.12.0) | ✅ | ❌ | ✅ |
How to Use
Option 1: Install via PyPI
For end users:
pip install sunrise6g-opensdk
Option 2: Development Mode
If you plan to modify the SDK:
git clone https://github.com/SunriseOpenOperatorPlatform/open-sdk.git
cd open-sdk
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
Basic Usage
You can use the SDK by simply specifying the adapters to be used. E.g. Edge Cloud Platform: i2Edge, 5G core: Open5Gs
Example available in /examples/example.py
python3 -m examples.example
How to Contribute
We welcome contributions to OpenSDK!
To get started:
- Fork the repository and create a branch from
main. - Add your changes in the appropriate adapter directory.
- Write or update tests for your changes.
- Ensure all tests and pre-commit checks pass.
- Submit a pull request with a clear description.
Please follow our full Contributing Guidelines for further details.
Example Workflow #1: App deployment over Kubernetes
sequenceDiagram
title Application Deployment using the Open SDK
actor AP as Application Vertical Provider
box Module implementing CAMARA APIs
participant API as CAMARA Edge Application Management API
participant SDK as Open SDK
end
participant K8s as Kubernetes
note over SDK: [Config] Edge Cloud platform: Kubernetes, IP, Port
API ->> SDK: from sunrise6g_opensdk import Sdk as sdkclient
API ->> SDK: sdkclient.create_adapters_from(configuration)
API ->> SDK: edgecloud_client = adapters.get("edgecloud")
SDK ->> SDK: SDK initialized and ready to be used
note over AP,API: Platform ready to receive CAMARA calls
AP ->> API: POST /app (APP_ONBOARD_MANIFEST)
API ->> SDK: edgecloud_client.onboard_app(APP_ONBOARD_MANIFEST)
SDK ->> K8s: Equivalent dedicated endpoint
AP ->> API: POST /appinstances (APP_ID, APP_ZONES)
API ->> SDK: edgecloud_client.deploy_app(APP_ID, APP_ZONES)
SDK ->> K8s: Equivalent dedicated endpoint
Example Workflow #2: QoS Session Creation over Open5Gs
sequenceDiagram
title QoS Session Creation over Open5GS
actor AP as Application Vertical Provider
box Module implementing CAMARA APIs
participant API as CAMARA QoS Management API
participant SDK as Open SDK
end
participant NEF as NEF
participant 5GS as Open5GS
note over SDK: [Config] Network core: Open5Gs, IP, Port
API ->> SDK: from sunrise6g_opensdk import Sdk as sdkclient
API ->> SDK: sdkclient.create_adapters_from(configuration)
API ->> SDK: network_client = adapters.get("network")
SDK ->> SDK: SDK initialized and ready to be used
note over AP,API: Platform ready to receive CAMARA calls
AP ->> API: POST /sessions (QOS_SESSION_REQUEST)
API ->> SDK: network_client.create_qos_session(QOS_SESSION_REQUEST)
SDK ->> NEF: Equivalent endpoint
NEF ->> 5GS: QoS session creation
Roadmap for Open SDK 2nd release
- Add support to GSMA OPG.02 TFs
- Include JUNIPER O-RAN adapter
License
Apache 2.0 License – see LICENSE file for details.
Metadata
Release files for sunrise6g-opensdk 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sunrise6g_opensdk-2.0.0.tar.gz | 88.6 kB | Without provenance | Details for sunrise6g_opensdk-2.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sunrise6g_opensdk-2.0.0-py3-none-any.whl | Python 3 | none | any | Details for sunrise6g_opensdk-2.0.0-py3-none-any.whl |
Total release size: 216.3 kB
Release files / sunrise6g_opensdk-2.0.0.tar.gz
| Download URL | sunrise6g_opensdk-2.0.0.tar.gz |
|---|---|
| Size | 88.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b57ca5e7d51c5670aed65a7ab42e3ca6914ec57c6ca7f2f0b1755e5cd8982cf3
|
|
BLAKE2b-256 checksum How to use checksums |
7149ccb3ad1b7381123c64ddd160c4a708382fc4a46ec85043f40020432b596a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / sunrise6g_opensdk-2.0.0-py3-none-any.whl
| Download URL | sunrise6g_opensdk-2.0.0-py3-none-any.whl |
|---|---|
| Size | 127.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aec1b9b2e968f7f3e28646fe56ff49de6dcfe28c9e9d42004d653f0a122679d8
|
|
BLAKE2b-256 checksum How to use checksums |
5112a84ca974dfd0ba03f093212780bf54dc15b028bd168fe471343995a3de84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Security for sunrise6g-opensdk 2.0.0
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.