5 releases (3 breaking)
Uses old Rust 2015
0.4.0 | Oct 19, 2017 |
---|---|
0.3.1 | Apr 24, 2017 |
0.3.0 | Mar 20, 2017 |
0.2.0 | Mar 1, 2017 |
0.1.0 | Oct 15, 2016 |
#21 in #name-service
72 downloads per month
52KB
911 lines
Abstract Name Service
Status: Beta
Documentation | Github | Crate
This rust crate provides just abstract traits which may be used to build interoperable implementations of name dicovery.
We want abstract_ns to have implementations not only for DNS-based name discovery but also Zookeeper, Eureka, Etcd, Consul, and whatever other thing you might imagine. All of them easily configured and interchangeable.
Features:
- Defines what is a name and what is a result of service discovery
- Uses futures-rs for asynchronous stuff
- Has interface to receive updates (name changes)
- Allows some kind of name service routing, i.e. has a way to specify different
resolvers for different names, for example: serve
*.consul
from local consul, other names from conventional DNS servers.
This repository also contains the following crates:
ns-std-threaded
a name resolution implementation that uses stdlib resolver running in a thread poolns-dns-tokio
an pure-rust implementation that usesdomain
crate to resolve domains asynchronously intokio-core
main loop
Note: abstract-ns v0.2 is very different product than v0.1
License
Licensed under either of
- Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
This crate provides a simple name resolver that based on domain
crate
The domain
crate is made as a one-stop thing for any DNS. Still
abstract-ns
provides subscriptions for updates and service discovery
based on different services (and mapping between names and resolvers).
Use this crate:
- As a more efficient
ns-std-threaded
(with care!) - For DNS-based name resolution (no SRV yet)
Dependencies
~9MB
~149K SLoC