{"id":25175932,"url":"https://github.com/leoborai/network-interface","last_synced_at":"2025-12-12T16:40:18.497Z","repository":{"id":38809087,"uuid":"409819971","full_name":"LeoBorai/network-interface","owner":"LeoBorai","description":"Retrieve system's Network Interfaces on Linux, macOS and Windows on a standardized manner","archived":false,"fork":false,"pushed_at":"2025-03-28T00:50:48.000Z","size":78,"stargazers_count":70,"open_issues_count":5,"forks_count":30,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T23:08:35.390Z","etag":null,"topics":["multiplatform","netifa","network"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/network-interface","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeoBorai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-24T03:31:26.000Z","updated_at":"2025-04-01T05:37:31.000Z","dependencies_parsed_at":"2023-01-31T03:45:48.336Z","dependency_job_id":"5c3497f8-4371-42c6-8cc3-1a2ea28fc9ab","html_url":"https://github.com/LeoBorai/network-interface","commit_stats":{"total_commits":35,"total_committers":16,"mean_commits":2.1875,"dds":0.4285714285714286,"last_synced_commit":"376fe3d8ac2d3a41b7ff4e8d8f36a46e8d80652b"},"previous_names":["leoborai/network-interface"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeoBorai%2Fnetwork-interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeoBorai%2Fnetwork-interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeoBorai%2Fnetwork-interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeoBorai%2Fnetwork-interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeoBorai","download_url":"https://codeload.github.com/LeoBorai/network-interface/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595334,"owners_count":20963943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["multiplatform","netifa","network"],"created_at":"2025-02-09T13:06:56.458Z","updated_at":"2025-12-12T16:40:18.402Z","avatar_url":"https://github.com/LeoBorai.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv\u003e\n  \u003ch1 align=\"center\"\u003enetwork-interface\u003c/h1\u003e\n  \u003ch4 align=\"center\"\u003e\n    Retrieve system's Network Interfaces/Adapters on Android, FreeBSD, Linux, macOS, iOS and Windows\n    on a standarized manner\n  \u003c/h4\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  [![Crates.io](https://img.shields.io/crates/v/network-interface.svg)](https://crates.io/crates/network-interface)\n  [![Documentation](https://docs.rs/network-interface/badge.svg)](https://docs.rs/network-interface)\n  ![Build](https://github.com/EstebanBorai/network-interface/workflows/build/badge.svg)\n  ![Clippy](https://github.com/EstebanBorai/network-interface/workflows/clippy/badge.svg)\n  ![Formatter](https://github.com/EstebanBorai/network-interface/workflows/fmt/badge.svg)\n\n\u003c/div\u003e\n\n\u003e This crate is under development, feel free to contribute on [GitHub](https://github.com/EstebanBorai/network-interface). API and implementation is subject to change.\n\nThe main goal of `network-interface` crate is to retrieve system's Network\nInterfaces in a standardized manner.\n\n_standardized manner_ means that every supported platform must expose the same\nAPI and no further changes to the implementation are required to support such\nplatform.\n\n## Usage\n```rust\nuse network_interface::NetworkInterface;\nuse network_interface::NetworkInterfaceConfig;\n\nfn main() {\n    let network_interfaces = NetworkInterface::show().unwrap();\n\n    for itf in network_interfaces.iter() {\n        println!(\"{:?}\", itf);\n    }\n}\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eOutput\u003c/summary\u003e\n\n```\nNetworkInterface { name: \"lo\", addr: Some(V4(V4IfAddr { ip: 127.0.0.1, broadcast: Some(127.0.0.1), netmask: Some(255.0.0.0) })) }\nNetworkInterface { name: \"wlp1s0\", addr: Some(V4(V4IfAddr { ip: 192.168.0.16, broadcast: Some(192.168.0.255), netmask: Some(255.255.255.0) })) }\nNetworkInterface { name: \"wg0\", addr: Some(V4(V4IfAddr { ip: 10.8.0.4, broadcast: Some(10.8.0.4), netmask: Some(255.255.255.0) })) }\nNetworkInterface { name: \"docker0\", addr: Some(V4(V4IfAddr { ip: 172.17.0.1, broadcast: Some(172.17.255.255), netmask: Some(255.255.0.0) })) }\nNetworkInterface { name: \"lo\", addr: Some(V6(V6IfAddr { ip: ::1, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff) })) }\nNetworkInterface { name: \"wlp1s0\", addr: Some(V6(V6IfAddr { ip: \u003credacted\u003e, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }\nNetworkInterface { name: \"docker0\", addr: Some(V6(V6IfAddr { ip: \u003credacted\u003e, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }\nNetworkInterface { name: \"veth9d2904f\", addr: Some(V6(V6IfAddr { ip: \u003credacted\u003e, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }\nNetworkInterface { name: \"vethcdd79af\", addr: Some(V6(V6IfAddr { ip: \u003credacted\u003e, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }\n```\n\u003c/details\u003e\n\n## Release\n\nIn order to create a release you must push a Git tag as follows\n\n```sh\ngit tag -a \u003cversion\u003e -m \u003cmessage\u003e\n```\n\n**Example**\n\n```sh\ngit tag -a v0.1.0 -m \"First release\"\n```\n\n\u003e Tags must follow semver conventions\n\u003e Tags must be prefixed with a lowercase `v` letter.\n\nThen push tags as follows:\n\n```sh\ngit push origin main --follow-tags\n```\n\n## Contributing\n\nEvery contribution to this project is welcome. Feel free to open a pull request,\nan issue or just by starting this project.\n\n## License\n\nDistributed under the terms of both the MIT license and the Apache License (Version 2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoborai%2Fnetwork-interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleoborai%2Fnetwork-interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoborai%2Fnetwork-interface/lists"}