https://github.com/svartalf/rust-macaddr
Primitive types for MAC addresses in Rust
https://github.com/svartalf/rust-macaddr
eui-48 eui-64 macaddr macaddress networking rust
Last synced: 11 months ago
JSON representation
Primitive types for MAC addresses in Rust
- Host: GitHub
- URL: https://github.com/svartalf/rust-macaddr
- Owner: svartalf
- License: apache-2.0
- Created: 2019-05-23T13:21:48.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-28T01:30:29.000Z (almost 3 years ago)
- Last Synced: 2024-04-23T22:20:00.971Z (about 2 years ago)
- Topics: eui-48, eui-64, macaddr, macaddress, networking, rust
- Language: Rust
- Homepage: https://crates.io/crates/macaddr
- Size: 30.3 KB
- Stars: 7
- Watchers: 2
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# macaddr
> MAC address types for Rust
[](https://crates.io/crates/macaddr)
[](https://docs.rs/macaddr)
[](https://github.com/svartalf/rust-macaddr/actions)
[](https://coveralls.io/github/svartalf/rust-macaddr?branch=master)



This crate provides types for a [MAC address](https://en.wikipedia.org/wiki/MAC_address)
identifiers, both in IEEE *EUI-48* and *EUI-64* formats.
It is like a [`std::net::SocketAddr`](https://doc.rust-lang.org/std/net/enum.SocketAddr.html) enum with a
[`std::net::SocketAddrV4`](https://doc.rust-lang.org/std/net/struct.SocketAddrV4.html) and
[`std::net::SocketAddrV6`](https://doc.rust-lang.org/std/net/struct.SocketAddrV6.html) members,
but for MAC addresses instead.
Obviously, MAC address can be represented as a `[u8; 6]` or `[u8; 8]`,
but it is error-prone and inconvenient, so here they are —
[MacAddr6](https://docs.rs/macaddr/latest/macaddr/struct.MacAddr6.html) and
[MacAddr8](https://docs.rs/macaddr/latest/macaddr/struct.MacAddr8.html)
structs with helpful methods and standard Rust traits implementations,
intended to be the first-class Rust objects.
And it is `serde`- and `no_std`-friendly also!
## Installation
Add this to your `Cargo.toml`
```toml
[dependencies]
macaddr = "1.0"
```
## Usage
Check out the [documentation](https://docs.rs/macaddr) for each type
available, all of them have a plenty of examples.
## License
Licensed under either of [Apache License 2.0](https://github.com/svartalf/rust-macaddr/blob/master/LICENSE-APACHE)
or [MIT license](https://github.com/svartalf/rust-macaddr/blob/master/LICENSE-MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you,
as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.