Skip to main content

Crate oxirush_nas

Crate oxirush_nas 

Source
Expand description

§oxirush-nas

A fast, memory-safe library for encoding and decoding 5G NAS (Non-Access Stratum) messages, per 3GPP TS 24.501.

§Quick start

use oxirush_nas::{decode_nas_5gs_message, encode_nas_5gs_message, Validate};

let bytes = hex::decode(
    "7e004179000d0199f9070000000000000010022e08a020000000000000"
).unwrap();

// Decode
let msg = decode_nas_5gs_message(&bytes).unwrap();

// Human-readable display
println!("{msg}");

// Validate per TS 24.501
assert!(msg.validate().is_empty());

// Round-trip encode
assert_eq!(bytes, encode_nas_5gs_message(&msg).unwrap());

§Architecture

The crate is organized in three layers:

LayerModuleDescription
1typesRaw wire-format IE structs with Encode/Decode traits
2messagesNAS message structs with IEI dispatch and codec functions
3ieTyped zero-cost accessors — enums, parsers, builder helpers

Additional modules: display (Wireshark-style formatting), validate (structural validation), and security (NAS security envelope, feature-gated).

§Feature flags

FeatureDescription
securityNAS security envelope (protect/unprotect) via oxirush-security
serdeJSON serialization for typed IE structs

Re-exports§

pub use types::NasError;
pub use types::Result;
pub use types::Encode;
pub use types::Decode;
pub use message_types::Nas5gmmMessageType;
pub use message_types::Nas5gsmMessageType;
pub use message_types::Nas5gsSecurityHeaderType;
pub use messages::Nas5gsMessage;
pub use messages::Nas5gmmMessage;
pub use messages::Nas5gsmMessage;
pub use messages::encode_nas_5gs_message;
pub use messages::decode_nas_5gs_message;
pub use validate::Validate;
pub use types::*;
pub use ie::*;

Modules§

display
Human-readable fmt::Display implementations for all NAS messages.
ie
Typed accessors for NAS Information Elements.
message_types
NAS message type and security header type enums.
messages
NAS message structs, headers, and codec functions.
types
Raw wire-format Information Element types and codec traits.
validate
Structural validation for NAS messages per TS 24.501.

Constants§

VERSION
Version of oxirush-nas