An open API service indexing awesome lists of open source software.

https://github.com/unifyair/unifyair-core

5G Network Functions Implementation in Rust
https://github.com/unifyair/unifyair-core

3gpp 3gpp-r17 5g rust sctp tokio-rs

Last synced: 3 months ago
JSON representation

5G Network Functions Implementation in Rust

Awesome Lists containing this project

README

          

# ๐Ÿš€ UnifyAir Core - 5G Network Functions

[![Rust](https://img.shields.io/badge/Rust-1.82+-orange.svg)](https://www.rust-lang.org)
[![License](https://img.shields.io/badge/License-AGPL--3.0-green.svg)](LICENSE)
[![Discord](https://img.shields.io/discord/1316430894445105283?color=7289da&label=Discord&logo=discord&logoColor=white)](https://discord.gg/yuJHdZ4vEF)
[![Twitter](https://img.shields.io/twitter/follow/unifyair?style=social)](https://x.com/unifyair)

![UnifyAir Core](https://unifyair.io/assets/top_image.png)

โšก High-performance, 3GPP standards-compliant 5G Core Network Functions implementation in Rust

## ๐Ÿ“‘ Table of Contents
- [๐ŸŽฏ Project Overview](#-project-overview)
- [๐Ÿ’ซ Project Scope](#-project-scope)
- [๐Ÿ—๏ธ Project Structure](#๏ธ-project-structure)
- [๐Ÿš€ Getting Started](#-getting-started)
- [โš™๏ธ Configuration](#-configuration)
- [๐Ÿงช Testing](#-testing)
- [๐Ÿค Contributing](#-contributing)
- [๐ŸŒ Community](#-community)

## ๐ŸŽฏ Project Overview

UnifyAir Core implements the following Network Functions (NFs):

### โœจ Implemented Network Functions

* **๐Ÿ›ก๏ธ Omnipath (AMF - Access and Mobility Management Function)**
* Handles mobility management
* User authentication and authorization
* Access control and security procedures
* UE registration and connection management

### ๐Ÿš€ Planned Nf Support
* **๐ŸŒŠ DataWarp (UPF - User Plane Function)**
* Packet routing and forwarding
* QoS handling for user plane traffic
* Traffic measurement and reporting
* Packet inspection and policy enforcement

* **๐Ÿ”„ InfiniSync (SMF - Session Management Function)**
* Session establishment, modification, and release
* IP address allocation and management
* Traffic steering control
* QoS policy implementation

## ๐Ÿ’ซ Project Scope

### Current Features
- โšก Async-first architecture using Tokio runtime
- ๐Ÿš€ High-performance network packet processing
- ๐Ÿ“‹ Standards-compliant 5G NF implementations
- ๐Ÿงฉ Modular design for easy extension and modification
- ๐Ÿ“Š Comprehensive logging and monitoring
- ๐Ÿ”Œ REST APIs for configuration and management

### Planned Features
- ๐Ÿ”’ Enhanced security features and encryption
- ๐Ÿ”„ Additional Network Function implementations
- โšก Performance optimization and scaling improvements
- ๐Ÿ“ˆ Extended monitoring and analytics
- โ˜๏ธ Cloud-native deployment support

## ๐Ÿ—๏ธ Project Structure
```
unifyair-core/
โ”œโ”€โ”€ lightning-nf/ # Network Functions implementations
โ”‚ โ””โ”€โ”€ omnipath/ # AMF (Access and Mobility Management Function)
โ”œโ”€โ”€ lightning-cli/ # Command-line interface tools
โ”œโ”€โ”€ utils/ # Shared utilities and common code
โ”œโ”€โ”€ config/ # Configuration files
โ”‚ โ”œโ”€โ”€ amfcfg.yaml # AMF configuration
โ”‚ โ”œโ”€โ”€ smfcfg.yaml # SMF configuration
โ”‚ โ””โ”€โ”€ upfcfg.yaml # UPF configuration
โ”œโ”€โ”€ Cargo.toml # Rust package manifest
โ”œโ”€โ”€ rust-toolchain.toml # Rust toolchain configuration
โ””โ”€โ”€ run.sh # Utility script for running the project
```

## ๐Ÿš€ Getting Started

### Prerequisites
- Rust 1.82 or above nightly
- Cargo package manager

### Local Development Setup
1. Clone the repository:
```bash
git clone https://github.com/unifyair/unifyair-core.git
cd unifyair-core
```

2. Install dependencies:
```bash
cargo build
```

3. For detailed setup instructions, refer to [SETUP.md](SETUP.md)

## โš™๏ธ Configuration

Configuration is managed through:
- Environment variables
- Configuration files in `config/`
- Command line arguments

## ๐Ÿงช Testing

Run the test suite:
```bash
cargo test
```

## ๐Ÿค Contributing

We welcome contributions! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

### Development Process
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to your fork
5. Submit a Pull Request

## ๐ŸŒ Community

- ๐ŸŒ [Project Website](https://unifyair.io)
- ๐Ÿ› [Issue Tracker](https://github.com/UnifyAir/unifyair-core/issues)
- ๐Ÿ’ฌ [Discord Community](https://discord.gg/yuJHdZ4vEF)
- ๐Ÿฆ [Twitter](https://x.com/unifyair)