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 在 网络编程
每月2,038次下载
在 2 crates 中使用
71KB
2K SLoC
rust-netaddr2 (netaddr2
) •
这个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::IpAddr
在 no_std
环境中通用化。
维护状态
此代码库尚未功能完整。如果您想贡献力量,请查看问题跟踪器,并在 Issue 中提出您的要求。尽管如此,业务逻辑已经过测试,应该可以正常工作。当 GitHub 里程碑已完全解决时,我们将发布 1.0 版本。
许可证
版权所有 © 2019 Kristofer J. Rye
此软件可在以下许可证下发布:
- Apache License 2.0,(http://www.apache.org/licenses/LICENSE-2.0) 或
- MIT 许可证,(http://opensource.org/licenses/MIT)
由您自行决定。有关更多信息,请参阅许可证文件 (LICENSE.md)。
鸣谢
我们感谢 netaddr
Ruby gem 的开发者,他们的工作启发了本项目的发展和用户体验。
依赖项
~170KB