tpt-novacore
Rust3GPP-compliant 6G mobile core in Rust — async AMF/SMF control plane over a Service-Based Architecture, with a kernel-bypass User Plane Function (UPF). Hand-written GTP-U/PFCP/NGAP codecs, Raft-backed state, round-trip-tested protocols.
Languages
TPT-NovaCore
A 3GPP-compliant, cloud-native 6G Mobile Core (AMF / SMF / UPF) written in Rust.
See spec.txt for the product vision and TODO.md for the
phased roadmap and honest status notes.
Status: early development. The workspace builds and tests green, protocol codecs (GTP-U, PFCP) round-trip, and the control-plane service scaffolding is in place. Data-plane acceleration (XDP/DPDK), distributed state, and the full 3GPP procedure set are still in progress — see
TODO.mdfor exactly what is and is not done. Performance claims inspec.txt("millions of pps", "microsecond latency") are not yet measured and must not be quoted as fact.
Workspace layout
| Crate | Role |
|---|---|
tpt-novacore-common | Shared error types, IDs (SUPI/GUTI/TEID/SEID), and utilities |
tpt-novacore-proto | Native protocol codecs: GTP-U, PFCP, NGAP (Protocol-as-Code) |
tpt-novacore-sba | Service-Based Architecture scaffolding (gRPC/HTTP2, discovery) |
tpt-novacore-state | Distributed subscriber state store (Raft / UDM-UDR model) |
tpt-novacore-amf | Access and Mobility Management Function |
tpt-novacore-smf | Session Management Function |
tpt-novacore-upf | User Plane Function (data path) |
Building
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all --check
Rust 1.82+ (edition 2021) is required. See CLAUDE.md for
architecture and contribution notes.
Platform notes
The Control Plane (AMF/SMF) and all protocol codecs build and test on any
platform, including Windows and macOS. The UPF data-plane acceleration path
(XDP/eBPF via aya, io_uring, DPDK/VPP) requires Linux and, for real NIC
validation, bare-metal or a cloud VM with SR-IOV/DPDK-capable NICs. WSL2 is
suitable for control-plane development but not for validating kernel-bypass I/O.
License
Apache-2.0. See LICENSE.