10 个不稳定版本 (3 个破坏性更新)

0.3.2 2019 年 3 月 28 日
0.3.1 2019 年 1 月 22 日
0.2.3 2019 年 1 月 16 日
0.1.0 2019 年 1 月 8 日
0.0.2-alpha.12019 年 1 月 8 日

#12 in #template-string

28 每月下载量

MIT 许可证

43KB
904

Build Status Ift Version

IFT (接口模板)

模板字符串用于提取正确的接口和要绑定的 IpAddr。灵感主要来源于 https://github.com/hashicorp/go-sockaddr

它是做什么的?

eval(文档) 接受一个接口模板字符串。模板是一个以 生产者 开头的字符串,后跟 过滤器排序,每个都是通过管道符号 | 分隔的。 eval 返回一个 IpAddr 对象的向量,然后可以用作绑定

用法

通用

use ift::eval;
print!("{:?}", eval(r#"GetInterface "en0""#).unwrap());

actix

use actix_web::{
   server,
   App,
};
let mut s = server::new(|| { App::new() });
for ip in ift::eval("GetPrivateInterfaces").unwrap().into_iter() {
  s = s.bind((ip, 8080)).unwrap();
}

示例模板

  • 获取私有接口 GetAllInterfaces | FilterFlags "up" | FilterForwardable | SortBy "default"
  • 获取私有接口(简短) GetPrivateInterfaces
  • 按名称获取特定接口 GetInterface "en0"
  • 仅获取具有 ipv6 地址的接口 GetAllInterfaces | FilterIPv6

示例代码

示例代码在 示例文件夹 中。

  • actix - 绑定多个私有接口

开发

重新生成 RFC 代码

make gen

更新 README

make update

发布

可以使用 cargo release 命令。

cargo release patch

许可证:MIT

依赖项

~6–8MB
~145K SLoC