Skip to content

shellrow/mac-addr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Lightweight, no_std compatible MAC address library for Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages