[package]
edition = "2024"
name = "pharos-plugins"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CoreDNS-compatible Plugins for the Pharos DNS server"
readme = false
license = "Apache-2.0"
repository = "https://github.com/itsmeyaw/pharos-dns"
[features]
default = [
"plugin-any",
"plugin-bind",
"plugin-bufsize",
"plugin-cache",
"plugin-chaos",
"plugin-errors",
"plugin-forward",
"plugin-header",
"plugin-health",
"plugin-hosts",
"plugin-kubernetes",
"plugin-loadbalance",
"plugin-local",
"plugin-log",
"plugin-loop",
"plugin-metadata",
"plugin-minimal",
"plugin-multisocket",
"plugin-nsid",
"plugin-prometheus",
"plugin-ready",
"plugin-reload",
"plugin-whoami",
]
plugin-acl = []
plugin-any = []
plugin-auto = []
plugin-autopath = []
plugin-azure = []
plugin-bind = []
plugin-bufsize = []
plugin-cache = []
plugin-cancel = []
plugin-chaos = []
plugin-clouddns = []
plugin-debug = []
plugin-dns64 = []
plugin-dnssec = []
plugin-dnstap = []
plugin-dynupdate = []
plugin-erratic = []
plugin-errors = ["dep:regex"]
plugin-etcd = []
plugin-file = []
plugin-forward = []
plugin-geoip = []
plugin-grpc = []
plugin-grpc-server = []
plugin-header = []
plugin-health = []
plugin-hosts = []
plugin-https = []
plugin-https3 = []
plugin-k8s-external = []
plugin-kubernetes = ["dep:pharos-kubernetes"]
plugin-loadbalance = []
plugin-local = []
plugin-log = []
plugin-loop = []
plugin-metadata = []
plugin-minimal = []
plugin-multisocket = []
plugin-nomad = []
plugin-nsid = []
plugin-on = []
plugin-pprof = []
plugin-prometheus = []
plugin-proxyproto = []
plugin-quic = []
plugin-ready = []
plugin-reload = []
plugin-rewrite = []
plugin-root = []
plugin-route53 = []
plugin-secondary = []
plugin-shed = []
plugin-sign = []
plugin-siit = []
plugin-template = []
plugin-timeouts = []
plugin-tls = []
plugin-trace = []
plugin-transfer = []
plugin-tsig = []
plugin-view = []
plugin-whoami = []
[lib]
name = "pharos_plugins"
path = "src/lib.rs"
[[test]]
name = "allocations"
path = "tests/allocations.rs"
[[test]]
name = "any"
path = "tests/any.rs"
[[test]]
name = "any_allocations"
path = "tests/any_allocations.rs"
[[test]]
name = "bind_listener"
path = "tests/bind_listener.rs"
[[test]]
name = "bind_setup"
path = "tests/bind_setup.rs"
[[test]]
name = "bufsize"
path = "tests/bufsize.rs"
[[test]]
name = "bufsize_allocations"
path = "tests/bufsize_allocations.rs"
[[test]]
name = "cache"
path = "tests/cache.rs"
[[test]]
name = "cache_allocations"
path = "tests/cache_allocations.rs"
[[test]]
name = "cache_metrics"
path = "tests/cache_metrics.rs"
[[test]]
name = "cache_setup"
path = "tests/cache_setup.rs"
[[test]]
name = "cache_stale"
path = "tests/cache_stale.rs"
[[test]]
name = "chaos"
path = "tests/chaos.rs"
[[test]]
name = "chaos_allocations"
path = "tests/chaos_allocations.rs"
[[test]]
name = "errors_outcomes"
path = "tests/errors_outcomes.rs"
[[test]]
name = "errors_setup"
path = "tests/errors_setup.rs"
[[test]]
name = "forward"
path = "tests/forward.rs"
[[test]]
name = "forward_allocations"
path = "tests/forward_allocations.rs"
[[test]]
name = "forward_ported"
path = "tests/forward_ported.rs"
[[test]]
name = "header"
path = "tests/header.rs"
[[test]]
name = "header_allocations"
path = "tests/header_allocations.rs"
[[test]]
name = "health"
path = "tests/health.rs"
[[test]]
name = "health_setup"
path = "tests/health_setup.rs"
[[test]]
name = "hosts"
path = "tests/hosts.rs"
[[test]]
name = "hosts_allocations"
path = "tests/hosts_allocations.rs"
[[test]]
name = "hosts_ported"
path = "tests/hosts_ported.rs"
[[test]]
name = "hosts_reload"
path = "tests/hosts_reload.rs"
[[test]]
name = "hosts_setup"
path = "tests/hosts_setup.rs"
[[test]]
name = "kubernetes_allocations"
path = "tests/kubernetes_allocations.rs"
[[test]]
name = "kubernetes_coredns_handler"
path = "tests/kubernetes_coredns_handler.rs"
[[test]]
name = "kubernetes_coredns_ns_reverse"
path = "tests/kubernetes_coredns_ns_reverse.rs"
[[test]]
name = "kubernetes_coredns_records"
path = "tests/kubernetes_coredns_records.rs"
[[test]]
name = "kubernetes_large_allocations"
path = "tests/kubernetes_large_allocations.rs"
[[test]]
name = "kubernetes_lifecycle"
path = "tests/kubernetes_lifecycle.rs"
[[test]]
name = "kubernetes_services"
path = "tests/kubernetes_services.rs"
[[test]]
name = "kubernetes_setup"
path = "tests/kubernetes_setup.rs"
[[test]]
name = "kubernetes_visibility"
path = "tests/kubernetes_visibility.rs"
[[test]]
name = "loadbalance"
path = "tests/loadbalance.rs"
[[test]]
name = "loadbalance_allocations"
path = "tests/loadbalance_allocations.rs"
[[test]]
name = "loadbalance_cname_allocations"
path = "tests/loadbalance_cname_allocations.rs"
[[test]]
name = "loadbalance_prefer"
path = "tests/loadbalance_prefer.rs"
[[test]]
name = "loadbalance_relocation"
path = "tests/loadbalance_relocation.rs"
[[test]]
name = "loadbalance_setup"
path = "tests/loadbalance_setup.rs"
[[test]]
name = "loadbalance_weighted"
path = "tests/loadbalance_weighted.rs"
[[test]]
name = "local"
path = "tests/local.rs"
[[test]]
name = "local_allocations"
path = "tests/local_allocations.rs"
[[test]]
name = "local_debug"
path = "tests/local_debug.rs"
[[test]]
name = "log_format"
path = "tests/log_format.rs"
[[test]]
name = "log_outcomes"
path = "tests/log_outcomes.rs"
[[test]]
name = "log_setup"
path = "tests/log_setup.rs"
[[test]]
name = "loop_setup"
path = "tests/loop_setup.rs"
[[test]]
name = "metadata_collection"
path = "tests/metadata_collection.rs"
[[test]]
name = "metadata_setup"
path = "tests/metadata_setup.rs"
[[test]]
name = "minimal"
path = "tests/minimal.rs"
[[test]]
name = "minimal_allocations"
path = "tests/minimal_allocations.rs"
[[test]]
name = "multisocket_setup"
path = "tests/multisocket_setup.rs"
[[test]]
name = "nsid"
path = "tests/nsid.rs"
[[test]]
name = "nsid_allocations"
path = "tests/nsid_allocations.rs"
[[test]]
name = "prometheus"
path = "tests/prometheus.rs"
[[test]]
name = "prometheus_setup"
path = "tests/prometheus_setup.rs"
[[test]]
name = "proxy"
path = "tests/proxy.rs"
[[test]]
name = "proxy_allocations"
path = "tests/proxy_allocations.rs"
[[test]]
name = "proxy_tcp_allocations"
path = "tests/proxy_tcp_allocations.rs"
[[test]]
name = "proxy_throughput"
path = "tests/proxy_throughput.rs"
[[test]]
name = "ready"
path = "tests/ready.rs"
[[test]]
name = "ready_setup"
path = "tests/ready_setup.rs"
[[test]]
name = "registry"
path = "tests/registry.rs"
[[test]]
name = "reload_setup"
path = "tests/reload_setup.rs"
[[test]]
name = "server"
path = "tests/server.rs"
[[test]]
name = "server_allocations"
path = "tests/server_allocations.rs"
[[test]]
name = "whoami"
path = "tests/whoami.rs"
[[bench]]
name = "cache"
path = "benches/cache.rs"
harness = false
required-features = [
"plugin-cache",
"plugin-whoami",
]
[[bench]]
name = "chain"
path = "benches/chain.rs"
harness = false
required-features = ["plugin-whoami"]
[[bench]]
name = "log"
path = "benches/log.rs"
harness = false
required-features = ["plugin-log"]
[dependencies.arc-swap]
version = "1"
[dependencies.getrandom]
version = "0.2"
[dependencies.nix]
version = "0.31"
features = [
"net",
"socket",
"hostname",
]
[dependencies.pharos-corefile]
version = "0.1.0"
[dependencies.pharos-kubernetes]
version = "0.1.0"
optional = true
[dependencies.pharos-proto]
version = "0.1.0"
[dependencies.pharos-server]
version = "0.1.0"
[dependencies.regex]
version = "1"
optional = true
[dependencies.tokio]
version = "1"
features = [
"net",
"io-util",
"sync",
"time",
"rt",
"macros",
]
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.stats_alloc]
version = "0.1.10"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
"io-util",
"time",
]
[lints.rust]
unsafe_code = "forbid"