Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weskoerber/mac_address
A cross-platform library to retrieve the MAC address from your network interfaces without libc.
https://github.com/weskoerber/mac_address
tools zig zig-package
Last synced: about 2 months ago
JSON representation
A cross-platform library to retrieve the MAC address from your network interfaces without libc.
- Host: GitHub
- URL: https://github.com/weskoerber/mac_address
- Owner: weskoerber
- License: mit
- Created: 2024-05-17T01:52:16.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-09-14T03:24:42.000Z (5 months ago)
- Last Synced: 2024-11-18T21:48:16.443Z (2 months ago)
- Topics: tools, zig, zig-package
- Language: Zig
- Homepage: https://weskoerber.github.io/mac_address/
- Size: 35.2 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![test](https://github.com/weskoerber/mac_address/actions/workflows/test.yaml/badge.svg)](https://github.com/weskoerber/mac_address/actions/workflows/test.yaml)
[![docs](https://github.com/weskoerber/mac_address/actions/workflows/docs.yaml/badge.svg)](https://github.com/weskoerber/mac_address/actions/workflows/docs.yaml)# `mac_address`
A cross-platform library to retrieve the MAC address from your network
interfaces without `libc`.## Requirements
- [zig](https://github.com/ziglang/zig) compiler (`0.12.0` or newer)[^1]
## Install
First, add the dependency to your `build.zig.zon` using `zig fetch`:
```console
zig fetch --save git+https://github.com/weskoerber/mac_address#main
```Then, import `mac_address` into your `build.zig`:
```zig
const std = @import("std");pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});const mac_address = b.dependency("mac_address", .{
.target = target,
.optimize = optimize,
}).module("mac_address");const my_exe = b.addExecutable(.{
.name = "my_exe",
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});my_exe.root_module.addImport(mac_address);
}
```## Usage
See the `examples` directory for example usage. Example executables can be
built by setting the `examples` option to `true`:```zig
const mac_address = b.dependency("mac_address", .{
.target = target,
.optimize = optimize,
.examples = true,
}).module("mac_address");
```## Cross-platform support
| `mac_address` API | Linux | Windows |
| ------------------ | ----- | ------- |
| `getAll` | ✅ | ✅ |
| `getAllNoLoopback` | ✅ | ✅ |- ✅ = supported
- 📝 = planned
- ❌ = not supported---
[^1]: Shameless plug: if you're using a unix-like operating system or WSL on
Windows, consider using a Zig compiler version manager I wrote called
[zvm](https://github.com/weskoerber/zvm). Once downloaded and in your
`PATH`, just run `zvm install 0.12.0` (or `zvm install master` to get the
latest nightly).