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:
| Layer | Module | Description |
|---|---|---|
| 1 | types | Raw wire-format IE structs with Encode/Decode traits |
| 2 | messages | NAS message structs with IEI dispatch and codec functions |
| 3 | ie | Typed 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
| Feature | Description |
|---|---|
security | NAS security envelope (protect/unprotect) via oxirush-security |
serde | JSON 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::Displayimplementations 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