nutcas3 cea79ef825 feat: Add PaymentMethodDetails struct for token-based payment method retrieval
- Add PaymentMethodDetails with payment method ID, type, card details (last4, brand, expiry), fingerprint, and creation timestamp
- Support structured response for payment method token processing
2026-04-17 15:55:32 +03:00

Telecom-as-a-Service (TaaS) Platform

Sovereign, Full-Stack Cellular Connectivity Platform
Built with Go 1.26, Rust 1.94, TypeScript, eBPF, and 5G Core Network Technologies

Overview

This is a production-ready Telecom-as-a-Service platform that enables developers to programmatically provision and manage cellular connectivity through a clean API. The platform implements 3GPP standards using modern open-source technologies.

Technology Stack:

  • Go 1.26: Core network integration, BSS API, carrier connector
  • Rust 1.94: eBPF packet gateway, real-time charging engine
  • TypeScript/Next.js: Developer dashboard and SDK
  • free5GC: Open-source 5G core network
  • MongoDB: Subscriber data and authentication
  • Redis: Real-time credit control
  • eBPF/Aya: High-performance packet processing

Quick Start

Prerequisites

  • Go 1.26+: Download
  • Rust 1.94+: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Node.js 22+: Download
  • pnpm: npm install -g pnpm
  • Docker: Install
  • MongoDB 7.0+: Install
  • Redis: sudo apt-get install redis-server

Installation

# Clone the repository
git clone https://github.com/nutcas3/telecom-platform.git
cd telecom-platform

# Build all components
make all

# Start services (requires separate terminals)
# Terminal 1: API Server
./dist/api-server

# Terminal 2: Carrier Connector
./dist/carrier-connector

# Terminal 3: Charging Engine
./target/release/charging-engine

# Terminal 4: Web Dashboard
cd apps/web-dashboard && pnpm dev

Project Structure

telecom-platform/
├── apps/
│   ├── api-server/          # Go: Developer BSS API
│   ├── carrier-connector/   # Go: eSIM ES2+ Provisioning
│   ├── charging-engine/     # Rust: OCS Real-time Credit Control
│   ├── packet-gateway/      # Rust: eBPF UPF Data Plane
│   └── web-dashboard/       # TypeScript: Next.js Frontend
├── libs/
│   ├── shared-ts-sdk/       # TypeScript: Drop-in Widget SDK
│   └── proto/               # Shared Protobufs
├── deployments/
│   ├── kubernetes/          # K8s manifests
│   └── docker/              # Dockerfiles
├── docs/                    # Architecture & API docs
├── scripts/                 # Automation scripts
├── Makefile                 # Master build orchestrator
├── Cargo.toml              # Rust workspace config
├── go.work                 # Go workspace config
└── pnpm-workspace.yaml     # TypeScript workspace config

Development

Build Commands

# Build everything
make all

# Build specific language
make build-go        # Go services
make build-rust      # Rust components
make build-ui        # TypeScript dashboard

# Run tests
make test

# Clean artifacts
make clean

Working with Specific Components

Go Services:

cd apps/api-server
go run main.go

Rust Components:

cd apps/charging-engine
cargo run --release

TypeScript Dashboard:

cd apps/web-dashboard
pnpm dev

Documentation

Testing

# Unit tests
make test

# Go tests
go test ./apps/...

# Rust tests
cargo test --workspace

# TypeScript tests
pnpm -r test

Deployment

Docker

make docker-build
docker-compose up -d

Kubernetes

kubectl apply -f deployments/kubernetes/

Environment Variables

Create .env files in each service directory:

API Server (apps/api-server/.env):

MONGODB_URI=mongodb://localhost:27017/free5gc
REDIS_URI=redis://localhost:6379
API_PORT=8000
JWT_SECRET=your-secret-key

Charging Engine (apps/charging-engine/.env):

REDIS_URI=redis://localhost:6379
SERVER_PORT=8080

Web Dashboard (apps/web-dashboard/.env.local):

NEXT_PUBLIC_API_URL=http://localhost:8000

📖 Key Resources

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

  • free5GC Team: For the open-source 5G core implementation
  • Aya Community: For the pure-Rust eBPF framework
  • GSMA: For standardizing eSIM technology
  • Go Team: For the amazing Go 1.26 release
  • Rust Team: For continuous language improvements
S
Description
No description provided
Readme MIT
1.9 MiB
Languages
Go 67.9%
TypeScript 15%
Rust 8.5%
Python 1.8%
Kotlin 1.6%
Other 5.1%