🍺 BREW Explorer

← all formulae

ctrld

brew install ctrld v1.5.2 MIT

Highly configurable, multi-protocol DNS forwarding proxy

55
30-day installs · #4469
65
90-day · #6626
238
365-day · #6937
846
★ GitHub stars · updated 2mo ago

Build dependencies

go

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "go"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Highly configurable, multi-protocol DNS forwarding proxy",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:36:45+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "ctrld",
  "github_default_branch": "main",
  "github_last_commit_at": "2026-06-16T08:17:30Z",
  "github_readme_excerpt": "# ctrld\n\n![Test](https://github.com/Control-D-Inc/ctrld/actions/workflows/ci.yml/badge.svg)\n[![Go Reference](https://pkg.go.dev/badge/github.com/Control-D-Inc/ctrld.svg)](https://pkg.go.dev/github.com/Control-D-Inc/ctrld)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Control-D-Inc/ctrld)](https://goreportcard.com/report/github.com/Control-D-Inc/ctrld)\n\n![ctrld splash image](/docs/ctrldsplash.png)\n\nA highly configurable DNS forwarding proxy with support for:\n- Multiple listeners for incoming queries\n- Multiple upstreams with fallbacks\n- Multiple network policy driven DNS query steering (via network cidr, MAC address or FQDN)\n- Policy driven domain based \"split horizon\" DNS with wildcard support\n- Integrations with common router vendors and firmware\n- LAN client discovery via DHCP, mDNS, ARP, NDP, hosts file parsing\n- Prometheus metrics exporter \n\n## TLDR\nProxy legacy DNS traffic to secure DNS upstreams in highly configurable ways. \n\nAll DNS protocols are supported, including:\n- `UDP 53`\n- `DNS-over-HTTPS`\n- `DNS-over-TLS`\n- `DNS-over-HTTP/3` (DOH3)\n- `DNS-over-QUIC`\n\n# Use Cases\n1. Use secure DNS protocols on networks and devices that don\u0027t natively support them (legacy routers, legacy OSes, TVs, smart toasters).\n2. Create source IP based DNS routing policies with variable secure DNS upstreams. Subnet 1 (admin) uses upstream resolver A, while Subnet 2 (employee) uses upstream resolver B.\n3. Create destination IP based DNS routing policies with variable secure DNS upstreams. Listener 1 uses upstream resolver C, while Listener 2 uses upstream resolver D.\n4. Create domain level \"split horizon\" DNS routing policies to send internal domains (*.company.int) to a local DNS server, while everything else goes to another upstream.\n5. Deploy on a router and create LAN client specific DNS routing policies from a web GUI (When using ControlD.com).\n\n\n## OS Support\n- Windows (386, amd64, arm)\n- Windows Server (386, amd64)\n- MacOS (amd64, arm64)\n- Linux (386, amd64, a",
  "github_repo": "Control-D-Inc/ctrld",
  "github_stars": 846,
  "github_topics": [],
  "homepage": "https://github.com/Control-D-Inc/ctrld",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 55,
  "installs_365d": 238,
  "installs_90d": 65,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "MIT",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "ctrld",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 4469,
  "rank_365d": 6937,
  "rank_90d": 6626,
  "raw_hash": "0ac115df11e8653c",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/c/ctrld.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "1.5.2",
  "versioned_formulae": [],
  "why_use_this": null
}