mac-addr

Crates.iomac-addr
lib.rsmac-addr
version0.3.0
created_at2025-11-06 15:22:05.022918+00
updated_at2025-11-08 08:46:05.843534+00
descriptionLightweight, no_std compatible MAC address library
homepage
repositoryhttps://github.com/shellrow/mac-addr
max_upload_size
id1919801
size35,495
shellrow (shellrow)

documentation

README

mac-addr Crates.io License

Lightweight, dependency-free, no_std compatible MAC address library
supporting both EUI-48 (MacAddr) and EUI-64 (MacAddr8).

Overview

It’s designed for portability and low-level use:

  • no_std compatible
  • Optional alloc for string formatting
  • Optional serde support for serialization and deserialization
  • Small, efficient, and FFI-safe

Usage

Add mac-addr to your dependencies

[dependencies]
mac-addr = "0.3"

Example

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.

Features

Feature Default Description
std Use Rust standard library
alloc Enable heap allocation for MacAddr::address()
serde Add serde::Serialize / Deserialize implementations
Commit count: 0

cargo fmt