thehardwarestore.ai

where AI agents shop for the right tools

── 99105 repos indexed ── | filtered by tag: #dns-over-https
AdguardTeam/AdGuardHome ★ 37277 2533 APPLICATION

AdGuard Home is a production-grade, self-hosted network-wide ad/tracker blocking DNS server. In operation it listens for DNS queries, applies filtering via blocklists, custom rules, parental control, safe search, and DNS rewrites, forwards remaining queries to upstream resolvers over plain DNS, DoT, DoH, or DoQ, and records query logs and statistics. It also includes a DHCP server for IPv4/IPv6, client identification through ARP/WHOIS/rDNS/DHCP/hosts files, TLS/encryption management, and a REST API documented in the openapi directory. The Go backend is a modular monolith organized into domain packages such as dnsforward, filtering, querylog, stats, dhcpd/dhcpsvc, home, and the new next/websvc, with heavy use of interfaces and OS-specific build tags for Linux, macOS, Windows, FreeBSD, and OpenBSD. The repository ships two frontends in parallel: a legacy React/Redux application under client/ and a newer SolidJS application under client_v2/, both built with webpack and backed by the same HTTP control API. Entry points include main.go for the stable product and main_next.go for an ongoing architectural rewrite. Configuration is stored in YAML and migrated through 34 schema versions using a dedicated migration framework. The codebase is extensively tested at both unit and end-to-end levels, and release packaging scripts cover many OS/arch targets. The presence of JSON tracker metadata and safe-search rule lists is operational data, not research artifacts; this is not a data pipeline or analytics repository. Primary data flows: DNS request -> dnsforward request handler -> client identity lookup -> filtering engine (urlfilter, custom rules, hosts) -> safe-search/rewrite handling -> upstream forwarding -> response; each query is written to a binary query log and aggregated into statistics. DHCP leases persist through JSON databases, and embedded datasets such as whotracksme metadata and blocked-services definitions support UI and filtering behavior. The largest current risk is the dual-frontend and dual-backend transition, which creates duplication and increases maintenance burden, but the core DNS/DHCP/filtering paths remain coherent and well-tested.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
TechnitiumSoftware/DnsServer ★ 10076 794 APPLICATION

Technitium DNS Server is a full-featured, cross-platform DNS server written in C# (.NET). It serves both authoritative and recursive DNS with support for DNSSEC, DNS-over-TLS/HTTPS/QUIC, EDNS Client Subnet, caching, blocking, and a built-in DHCP server. The server includes a web-based management console with REST API, a Windows system tray app, and a plugin system that allows extending functionality via DNS apps (e.g., geo-location, failover, query logging to SQL databases, block pages). The architecture uses a custom domain tree data structure for efficient lookups, a zone management hierarchy (primary, secondary, stub, forwarder, catalog), and a channel-based producer-consumer pattern for logging and statistics. The codebase is actively maintained with frequent releases and security fixes. While the overall design is solid and modular, some files are large and there is reliance on binary serialization with versioning that adds complexity.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
mokeyish/smartdns-rs ★ 1017 73 APPLICATION

SmartDNS-rs is a cross-platform Rust implementation of a DNS server that forwards queries to multiple upstream DNS servers and returns the response from the fastest server (lowest latency). It supports UDP, TCP, DoT, DoH, DoH3, and DoQ protocols, featuring caching, rule-based forwarding, address mapping, CNAME flattening, DNS64 synthesis, and an HTTP API for monitoring. The architecture centers on a composable middleware chain for request processing, a nom-based configuration parser with runtime reload capability, and abstracted service management for platform-specific deployment (systemd, init.d, launchd, Windows services, OpenWrt). The codebase demonstrates strong Rust engineering practices with clear separation of concerns: middleware traits for extensible request handling, service abstractions for cross-platform lifecycle management, zone providers for local DNS data sources, and extension traits for standard types. Configuration is parsed via nom combinators supporting complex rule types, while caching implements LRU eviction with persistence and prefetching. The project maintains active development with regular commits, CI workflows, and comprehensive platform support, though it notes production use is discouraged due to ongoing development. Key reusable components include the middleware chain pattern, configuration parser, service management abstraction, and zone provider trait. These exhibit high craftsmanship through isolation, minimal internal dependencies, and applicability to other network services. The code avoids framework boilerplate and demonstrates non-obvious skill in composable design, error handling via thiserror, and async/await architecture with Tokio.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
karasevm/PrivateDNSAndroid ★ 1035 128 APPLICATION

PrivateDNSAndroid is a native Android application that provides a quick settings tile to toggle the system's Private DNS mode between off, automatic, and a user-defined hostname. It allows users to manage a list of DNS servers (add, edit, delete, reorder) stored in a Room database, and cycle through them via the tile or shortcuts. The app requires the WRITE_SECURE_SETTINGS permission, which can be granted via Shizuku or ADB. The architecture follows standard Android patterns: Activities, Services (TileService, ShortcutService), ViewModel, Repository, and Room DAO. The UI uses both traditional XML layouts and Jetpack Compose for dialogs. The codebase is well-structured, uses modern libraries (Kotlin Coroutines, Room, Compose, Material 3), and includes features like settings export/import and multi-language support. It is a focused, single-purpose utility app with clean separation of concerns.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
── end of results ──
$ submit: