#cidr #networking #address #replace #netaddr

netaddr2

一个Rust网络地址解析和算术库

12个版本 (破坏性更新)

0.10.0 2021年7月6日
0.9.0 2020年2月27日
0.8.0 2020年2月26日
0.7.0 2019年12月24日
0.1.2 2019年7月23日

#789网络编程

Download history 483/week @ 2024-03-24 497/week @ 2024-03-31 360/week @ 2024-04-07 625/week @ 2024-04-14 658/week @ 2024-04-21 686/week @ 2024-04-28 403/week @ 2024-05-05 864/week @ 2024-05-12 720/week @ 2024-05-19 383/week @ 2024-05-26 447/week @ 2024-06-02 406/week @ 2024-06-09 592/week @ 2024-06-16 453/week @ 2024-06-23 435/week @ 2024-06-30 547/week @ 2024-07-07

每月2,038次下载
2 crates 中使用

MIT/Apache

71KB
2K SLoC

rust-netaddr2 (netaddr2) • 构建状态 codecov 版本 下载 docs.rs

这个crate旨在替代其他语言中现有的各种"netaddr"库的重新实现。确实存在另一个netaddr crate,然而这个crate的作者在询问维护状态时没有回应。

它能做什么

NetAddr 产生于对以与路由器和网络接口相同的方式遮罩和子网IP空间的需求。其效用可能在开发此类工具的开发中实现得最为充分。

用法

有几种方法可以使用这个库。其中最符合人体工程学的方法可能是使用FromStr trait

let net: NetAddr = "ff02::1/128".parse().unwrap();
let net: Netv4Addr = "203.0.113.19/29".parse().unwrap();

(最终将添加更多选项。)

愿景

这个crate旨在尽可能的简单直接。我们通过镜像std::net::Ip.*Addr数据结构的结构来实现这一点。大多数对NetAddr结构的操作都是通过使用在主结构和连接它们的枚举上实现的traits来实现的。在适当的情况下,这些也适用于标准库结构。

此软件包没有依赖项,除非需要支持 no_std,否则不会接受任何依赖项。此软件包唯一使用 std 的部分是与 std::net::IpAddr 的桥接部分,因此一个潜在的贡献可能是将 std::net::IpAddrno_std 环境中通用化。

维护状态

此代码库尚未功能完整。如果您想贡献力量,请查看问题跟踪器,并在 Issue 中提出您的要求。尽管如此,业务逻辑已经过测试,应该可以正常工作。当 GitHub 里程碑已完全解决时,我们将发布 1.0 版本。

许可证

版权所有 © 2019 Kristofer J. Rye

此软件可在以下许可证下发布:

由您自行决定。有关更多信息,请参阅许可证文件 (LICENSE.md)。

鸣谢

我们感谢 netaddr Ruby gem 的开发者,他们的工作启发了本项目的发展和用户体验。

依赖项

~170KB