Lightweight, dependency-free, no_std compatible MAC address library
supporting both EUI-48 (MacAddr) and EUI-64 (MacAddr8).
It’s designed for portability and low-level use:
- no_std compatible
- Optional
allocfor string formatting - Optional
serdesupport for serialization and deserialization - Small, efficient, and FFI-safe
Add mac-addr to your dependencies
[dependencies]
mac-addr = "0.3"use mac_addr::{MacAddr, MacAddr8};
let mac6: MacAddr = "00:25:96:12:34:56".parse().unwrap();
assert_eq!(mac6.to_string(), "00:25:96:12:34:56");
// Convert EUI-48 -> EUI-64
let mac8 = MacAddr8::from_eui48(mac6);
assert_eq!(mac8.to_string(), "00:25:96:ff:fe:12:34:56");
// And back
assert_eq!(mac8.to_eui48().unwrap(), mac6);For more details, see doc.
| Feature | Default | Description |
|---|---|---|
std |
✅ | Use Rust standard library |
alloc |
⬜ | Enable heap allocation for MacAddr::address() |
serde |
⬜ | Add serde::Serialize / Deserialize implementations |