directory
2.12.0+incompatible
Repository: https://github.com/adguardteam/adguarddns.git
Documentation: pkg.go.dev

# Packages

Package access contains structures for access control management.
Package agd contains common entities and interfaces of AdGuard DNS.
Package agdcache contains cache interfaces, helpers, and implementations.
Package agdhttp contains common constants, functions, and types for working with HTTP.
Package agdnet contains network-related utilities.
Package agdpasswd contains authentication utils.
Package agdprotobuf contains protobuf utils.
Package agdrand contains utilities for random numbers.
Package agdtest contains simple mocks for common interfaces and other test utilities.
Package agdtime contains time-related utilities.
Package agdvalidate contains validation utilities.
Package backendpb contains the protobuf structures for the backend API.
Package billstat implements the AdGuard DNS billing statistics database.
Package bindtodevice contains an implementation of the [netext.ListenConfig] interface that uses Linux's SO_BINDTODEVICE socket option to be able to bind to a device.
Package cmd is the AdGuard DNS entry point.
Package connlimiter describes a limiter of the number of active stream-connections.
Package consul contains types and utilities for updating data from Consul.
Package debugsvc contains the debug HTTP API of AdGuard DNS.
Package dnscheck contains types and utilities for checking if a particular client uses the DNS server.
Package dnsdb contains types and utilities for collecting anonymous statistics about the Internet.
Package dnsmsg contains common constants, functions, and types for inspecting and constructing DNS messages.
Package dnssvc contains AdGuard DNS's main DNS services.
Package ecscache implements a EDNS Client Subnet (ECS) aware DNS cache that can be used as a [dnsserver.Middleware].
Package errcoll contains implementations of error collectors, most notably Sentry.
Package experiment occasionally contains code for one-off experiments.
Package filter contains the filter interface and its implementations along with types that combine them based on the settings in profile and filtering group.
Package geoip contains implementations of the GeoIP database for AdGuard DNS.
Package metrics contains definitions of most of the prometheus metrics that we use in AdGuard DNS.
Package optslog contains optimizations making debug logs using log/slog allocate less when debug mode is not enabled.
Package profiledb defines interfaces for databases of user profiles.
Package querylog defines the AdGuard DNS query log constants and types and provides implementations of the log.
Package remotekv contains remote key-value storage interfaces, helpers, and implementations.
Package rulestat contains the filtering rule statistics collector and API.
Package tlsconfig contains TLS-related interfaces, helpers, and implementations.
Package version contains AdGuardDNS version information.
Package websvc contains the AdGuard DNS web service.