3 个版本 (破坏性)
使用旧的 Rust 2015
0.3.0 | 2017年10月19日 |
---|---|
0.2.0 | 2017年3月1日 |
0.1.0 | 2016年10月15日 |
#20 in #name-service
50KB
854 行
抽象名称服务
状态:测试版
这个 Rust 包提供了一些抽象特质,可用于构建可互操作的名称发现实现。
我们希望 abstract_ns 除了基于 DNS 的名称发现外,还能有 Zookeeper、Eureka、Etcd、Consul 以及其他可能想到的任何东西的实现。所有这些都可以轻松配置和互换。
特性
- 定义了名称和名称发现的结果是什么
- 使用 futures-rs 进行异步操作
- 有接口接收更新(名称更改)
- 允许某种名称服务路由,即可以指定不同名称的不同解析器,例如:从本地 consul 提供
*.consul
,其他名称从传统的 DNS 服务器提供。
此存储库还包含以下 crate
ns-std-threaded
使用 stdlib 解析器并在线程池中运行的名 resolution 实现的 cratens-dns-tokio
使用domain
crate 在tokio-core
主循环中异步解析域的纯 Rust 实现
注意:abstract-ns v0.2 与 v0.1 是完全不同的产品
许可协议
许可协议为以下之一
- Apache 许可协议第 2 版,(./LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (./LICENSE-MIT 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确声明,否则您有意提交的任何贡献,按照 Apache-2.0 许可证定义的作品,应按上述方式双重许可,无需任何额外的条款或条件。
lib.rs
:
此 crate 提供了一个简单的名称解析器,它使用 lib 的名称解析。
不幸的是,由于许多原因,libc 不提供异步名称解析,所以我们运行请求在线程池中。
对于高性能服务器应用,这种方法远远不够高性能,但与其他一切兼容性最好。因此,它可以用于
- 提供最大兼容性(即开发环境的良好默认值)
- 在名称解析不是慢速部分的程序中
- 作为
ns_router::Router
的回退解析器,其中更频繁使用的名称后缀被该命名空间更快解析器覆盖
依赖项
~460–700KB