[package]
name = "zeronsd"
version = "0.4.3"
authors = ["Erik Hollensbe <linux@hollensbe.org>", "Adam Ierymenko <adam.ierymenko@zerotier.com>"]
description = "Unicast DNS resolver for ZeroTier networks"
homepage = "https://github.com/zerotier/zeronsd"
repository = "https://github.com/zerotier/zeronsd"
documentation = "https://github.com/zerotier/zeronsd/blob/main/README.md"
license = "BSD-3-Clause"
readme = "README.md"
keywords = ["dns", "zerotier"]
edition = "2021"
[dependencies]
regex = ">= 0"
anyhow = ">= 0"
clap = { version = "^3", features = ["derive"] }
ipnetwork = ">= 0"
trust-dns-resolver = { version = "^0.21.0", features = ["tokio-runtime", "dns-over-openssl"] }
trust-dns-server = { version = "^0.21.0", features = ["trust-dns-resolver", "dns-over-openssl"] }
tokio = { version = "1", features = ["full"] }
zerotier-central-api = { version = "= 1.0.3" }
zerotier-one-api = { version = "= 1.0.5" }
serde = ">= 0"
serde_json = ">= 0"
serde_yaml = ">= 0"
toml = ">=0"
tinytemplate = ">= 0"
rand = ">= 0"
num_cpus = ">=0"
tracing = "0.1"
tracing-log = "0.1"
tracing-subscriber = "0.2"
hex = ">=0"
openssl = ">= 0"
async-trait = ">=0"
lazy_static = ">=0"
[features]
vendored-openssl = [ "openssl/vendored" ]
[dev-dependencies]
ctor = ">=0"
[package.metadata.deb]
copyright = "ZeroTier, Inc"
extended-description = """
ZeroNS provides names that are a part of ZeroTier Central's
(https://my.zerotier.com) configured networks; once provided a network it:
- Listens on the local interface joined to that network -- you will want to
start one ZeroNS per ZeroTier network.
- Provides general DNS by forwarding all queries to `/etc/resolv.conf`
resolvers that do not match the TLD, similar to `dnsmasq`.
- Tells Central to point all clients that have the "Manage DNS" settings turned
**on** to resolve to it.
- Finally, sets a provided TLD (`.home.arpa` is the default), as well as
configuring `A` (IPv4) and `AAAA` (IPv6) records for:
- Member IDs: `zt-<memberid>.<tld>` will resolve to the IPv4/v6 addresses for
them.
- Names: _if_ the names are compatible with DNS names, they will be converted
as such: to `<name>.<tld>`.
- Please note that **collisions are possible** and that it's _up to the
admin to prevent them_.
"""
[package.metadata.generate-rpm]
assets = [ { source = "target/release/zeronsd", dest = "/usr/bin/zeronsd", mode = "755" } ]
requires = { openssl-libs = ">= 1.1.1g" }
[target.'cfg(windows)'.dependencies]
openssl = { version = ">=0", features = [ "vendored" ] }