mhost 0.11.1

Fast, async DNS lookup library and CLI -- modern dig/host replacement with parallel multi-server queries, DoH, DoT, subdomain discovery, and zone verification
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "mhost"
version = "0.11.1"
authors = ["Lukas Pustina <lukas@pustina.de>"]
build = "build.rs"
include = [
    "README.md",
    "LICENSE-APACHE",
    "LICENSE-MIT",
    "CHANGELOG.md",
    "**/*.rs",
    "Cargo.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fast, async DNS lookup library and CLI -- modern dig/host replacement with parallel multi-server queries, DoH, DoT, subdomain discovery, and zone verification"
homepage = "https://mhost.pustina.de"
readme = "README.md"
keywords = [
    "dns",
    "dns-lookup",
    "dig",
    "networking",
    "dns-client",
]
categories = [
    "command-line-utilities",
    "network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lukaspustina/mhost.git"

[package.metadata.deb]
extended-description = """
mhost
- is very fast and uses multiple DNS servers concurrently and aggregates all results for more reliable lookups.
- supports classic DNS over UDP and TCP as well as modern DNS over TLS (DoT) and HTTPS (DoH).
- presents results in an easy, human readable format or as JSON for post-processing.
- discovers host names, subdomains of any domain, as well as IP subnets in CIDR notation.
- uses lints to validate the DNS configurations of any domain.
"""
section = "Network"
features = ["app-cli"]
priority = "optional"
assets = [
    [
    "target/release/mhost",
    "usr/bin/",
    "755",
],
    [
    "README.md",
    "usr/share/doc/mhost/README",
    "644",
],
]

[package.metadata.rpm]
package = "mhost"

[package.metadata.rpm.cargo]
buildflags = [
    "--release",
    "--features",
    "app-cli",
]

[package.metadata.rpm.targets.mhost]
path = "/usr/bin/mhost"

[features]
app = ["app-cli"]
app-cli = [
    "app-lib",
    "clap",
    "clap_complete",
    "hickory-proto",
    "hostname",
    "tabwriter",
    "tracing-log",
    "tracing-subscriber",
]
app-lib = [
    "anyhow",
    "humantime",
    "services",
    "serde_json",
    "yansi",
    "dot",
    "doh",
]
app-tui = [
    "app-lib",
    "ratatui",
    "crossterm",
    "clap",
    "regex",
]
default = ["app-cli"]
doh = ["hickory-resolver/https-ring"]
dot = ["hickory-resolver/tls-ring"]
services = [
    "reqwest",
    "lru_time_cache",
]
tui = ["app-tui"]

[lib]
name = "mhost"
path = "src/lib.rs"

[[bin]]
name = "mdive"
path = "src/bin/mdive.rs"
doc = false
required-features = ["app-tui"]

[[bin]]
name = "mhost"
path = "src/bin/mhost.rs"
doc = false
required-features = ["app-cli"]

[[example]]
name = "lookup_json"
path = "examples/lookup_json.rs"

[[example]]
name = "multi_lookup"
path = "examples/multi_lookup.rs"

[[example]]
name = "multi_resolvers"
path = "examples/multi_resolvers.rs"

[[example]]
name = "predefined_resolvers"
path = "examples/predefined_resolvers.rs"

[[example]]
name = "resolvers_from_file"
path = "examples/resolvers_from_file.rs"

[[example]]
name = "rnd_lookups"
path = "examples/rnd_lookups.rs"

[[example]]
name = "soa_check"
path = "examples/soa_check.rs"

[[example]]
name = "statistics"
path = "examples/statistics.rs"

[[example]]
name = "subnet_ptr_lookup"
path = "examples/subnet_ptr_lookup.rs"

[[example]]
name = "system_resolvers"
path = "examples/system_resolvers.rs"

[[test]]
name = "cli_output_tests"
path = "tests/cli_output_tests.rs"

[dependencies.anyhow]
version = "1"
optional = true

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.clap]
version = "4"
optional = true

[dependencies.clap_complete]
version = "4"
optional = true

[dependencies.crossterm]
version = "0.28"
features = ["event-stream"]
optional = true

[dependencies.data-encoding]
version = "2"

[dependencies.futures]
version = "0.3"

[dependencies.hickory-proto]
version = "0.25"
features = ["text-parsing"]
optional = true

[dependencies.hickory-resolver]
version = "0.25"
features = [
    "tokio",
    "dnssec-ring",
    "system-config",
    "serde",
]

[dependencies.hostname]
version = "0.4"
optional = true

[dependencies.humantime]
version = "2"
optional = true

[dependencies.indexmap]
version = "2"

[dependencies.ipnetwork]
version = "0.21"
features = ["serde"]

[dependencies.lru_time_cache]
version = "0.11"
optional = true

[dependencies.nom]
version = "7"

[dependencies.pin-project]
version = "1"

[dependencies.rand]
version = "0.9"

[dependencies.ratatui]
version = "0.30"
features = ["crossterm"]
optional = true
default-features = false

[dependencies.regex]
version = "1"
optional = true

[dependencies.reqwest]
version = "0.13"
features = [
    "rustls",
    "json",
    "query",
    "hickory-dns",
]
optional = true
default-features = false

[dependencies.resolv-conf]
version = "0.7"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"
optional = true

[dependencies.smallvec]
version = "1"

[dependencies.tabwriter]
version = "1"
optional = true

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "time",
    "fs",
    "io-util",
    "net",
    "sync",
]

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-futures]
version = "0.2"

[dependencies.tracing-log]
version = "0.2"
optional = true

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "registry",
    "env-filter",
]
optional = true

[dependencies.yansi]
version = "1.0"
optional = true

[dev-dependencies.lit]
version = "1"

[dev-dependencies.spectral]
version = "0.6"

[dev-dependencies.tracing-log]
version = "0.2"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "registry",
    "env-filter",
]

[build-dependencies.clap]
version = "4"
features = ["suggestions"]
default-features = false

[build-dependencies.clap_complete]
version = "4"

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
overflow-checks = true