Documentation

Explore comprehensive documentation for all components of the Ad-Blocking Toolkit.

Core Documentation

  • /compiler-comparison/

    Rules Compiler Comparison This guide helps you choose the right rules compiler for your use case. All compilers produce identical output and support the same configuration schema. Quick Comparison…

  • /configuration-reference/

    Configuration Reference All rules compilers in this repository use the same configuration schema based on @adguard/hostlist-compiler. Supported Formats Format Extension Library JSON .json Native YAML…

  • /docker-guide/

    Docker Guide This guide covers using Docker for development with the ad-blocking toolkit. Docker Development Environment The repository includes a pre-configured Docker environment with all necessary…

  • /getting-started/

    Getting Started This guide will help you get up and running with the ad-blocking toolkit. Prerequisites Core Requirements Requirement Version Purpose Installation Deno 2.0+ TypeScript compilers and…

User Guides

  • /guides/api-client-examples/

    AdGuard DNS API Client - Code Examples This document provides practical examples using the refactored helper classes. Configuration Examples Using ConfigurationHelper DateTime Helper Examples Working…

  • /guides/api-client-usage/

    AdGuard DNS API Client - Usage Guide This C# client library provides a strongly-typed interface to the AdGuard DNS API (v1.11). Overview The AdGuard DNS API Client was generated from the official…

  • /guides/consoleui-architecture/

    AdGuard ConsoleUI Architecture This document describes the architecture and design patterns used in the AdGuard.ConsoleUI application. Overview AdGuard.ConsoleUI is a menu-driven console application…

  • /guides/deployment-guide/

    Deployment Guide Comprehensive guide for deploying ad-blocking components in production environments. Overview This guide covers deployment strategies for all components in the ad-blocking repository…

  • /guides/migration-guide/

    Migration Guide Guide for migrating between different compiler implementations and SDK versions in the ad-blocking repository. Overview This guide helps you migrate between: Different rules compiler…

  • /guides/testing-guide/

    Testing Guide Comprehensive guide to running tests for all components in the ad-blocking repository. Overview This project uses different testing frameworks for each language implementation: Component…

  • /guides/troubleshooting-guide/

    Troubleshooting Guide Comprehensive guide for troubleshooting common issues across all components in the ad-blocking repository. Overview This guide provides solutions for common issues you may…

  • /guides/typescript-api-sdk/

    TypeScript API SDK Guide A comprehensive guide to using the AdGuard DNS TypeScript API SDK with Deno 2.0+. Overview The TypeScript API SDK provides a complete, type-safe interface to the AdGuard DNS…

  • /guides/typescript-rules-compiler/

    TypeScript Rules Compiler Guide A comprehensive guide to using the TypeScript rules compiler with Deno 2.0+. Overview The TypeScript rules compiler is a Deno-based implementation that wraps @adguard…

API Documentation

  • /api/AccessTokenErrorResponse/

    AdGuard.ApiClient.Model.AccessTokenErrorResponse Properties Name Type Description Notes Error string [optional] ErrorCode string [optional] ErrorDescription string [optional] [Back to Model list…

  • /api/AccessTokenResponse/

    AdGuard.ApiClient.Model.AccessTokenResponse Properties Name Type Description Notes AccessToken string [optional] ExpiresIn int RefreshToken string [optional] TokenType string [optional] [Back to…

  • /api/AccountApi/

    AdGuard.ApiClient.Api.AccountApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description GetAccountLimits GET /oapi/v1/account/limits Gets account limits GetAccountLimits…

  • /api/AccountLimits/

    AdGuard.ApiClient.Model.AccountLimits Account limits Properties Name Type Description Notes AccessRules Limit DedicatedIpv4 Limit Devices Limit DnsServers Limit Requests Limit UserRules Limit…

  • /api/AuthenticationApi/

    AdGuard.ApiClient.Api.AuthenticationApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description AccessToken POST /oapi/v1/oauth_token Generates Access and Refresh token…

  • /api/DNSServer/

    AdGuard.ApiClient.Model.DNSServer Properties Name Type Description Notes Default bool DeviceIds List<string> Id string Name string Settings Object [Back to Model list] [Back to API list] [Back to…

  • /api/DNSServerCreate/

    AdGuard.ApiClient.Model.DNSServerCreate Properties Name Type Description Notes Name string Settings Object [optional] [Back to Model list] [Back to API list] [Back to README]

  • /api/DNSServersApi/

    AdGuard.ApiClient.Api.DNSServersApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description CreateDNSServer POST /oapi/v1/dns_servers Creates a new DNS server…

  • /api/DedicatedIPAddressesApi/

    AdGuard.ApiClient.Api.DedicatedIPAddressesApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description AllocateDedicatedIPv4Address POST /oapi/v1/dedicated_addresses/ipv…

  • /api/DedicatedIPv4Address/

    AdGuard.ApiClient.Model.DedicatedIPv4Address Properties Name Type Description Notes DeviceId string [optional] Ip string [Back to Model list] [Back to API list] [Back to README]

  • /api/Device/

    AdGuard.ApiClient.Model.Device Properties Name Type Description Notes DeviceType string DnsAddresses Object DnsServerId string Id string Name string Settings Object [Back to Model list] [Back to…

  • /api/DeviceCreate/

    AdGuard.ApiClient.Model.DeviceCreate Properties Name Type Description Notes DeviceType string DnsServerId string Name string [Back to Model list] [Back to API list] [Back to README]

  • /api/DeviceUpdate/

    AdGuard.ApiClient.Model.DeviceUpdate Properties Name Type Description Notes DeviceType string [optional] DnsServerId string [optional] Name string [optional] [Back to Model list] [Back to API list…

  • /api/DevicesApi/

    AdGuard.ApiClient.Api.DevicesApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description CreateDevice POST /oapi/v1/devices Creates a new device GetDevice GET /oapi/v…

  • /api/ErrorResponse/

    AdGuard.ApiClient.Model.ErrorResponse Properties Name Type Description Notes ErrorCode string Fields List<Object> Message string [optional] [Back to Model list] [Back to API list] [Back to README]

  • /api/FilterList/

    AdGuard.ApiClient.Model.FilterList Properties Name Type Description Notes FilterId string [optional] Name string [optional] Description string [optional] [Back to Model list] [Back to API list…

  • /api/FilterListsApi/

    AdGuard.ApiClient.Api.FilterListsApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description ListFilterLists GET /oapi/v1/filter_lists Gets filter lists ListFilterLists…

  • /api/Limit/

    AdGuard.ApiClient.Model.Limit Entity of the limit Properties Name Type Description Notes VarLimit int Max count Used long Used count [Back to Model list] [Back to API list] [Back to README]

  • /api/QueryLogApi/

    AdGuard.ApiClient.Api.QueryLogApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description ClearQueryLog DELETE /oapi/v1/query_log Clears query log GetQueryLog GET /oapi/v…

  • /api/QueryLogResponse/

    AdGuard.ApiClient.Model.QueryLogResponse Properties Name Type Description Notes Items List<Object> [optional] Pages List<Object> [optional] [Back to Model list] [Back to API list] [Back to README]

  • /api/StatisticsApi/

    AdGuard.ApiClient.Api.StatisticsApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description GetTimeQueriesStats GET /oapi/v1/stats/time Gets time statistics…

  • /api/TimeQueriesStatsList/

    AdGuard.ApiClient.Model.TimeQueriesStatsList Properties Name Type Description Notes Stats List<Object> [optional] [Back to Model list] [Back to API list] [Back to README]

  • /api/WebService/

    AdGuard.ApiClient.Model.WebService Properties Name Type Description Notes Id string [optional] Name string [optional] IconSvg string [optional] [Back to Model list] [Back to API list] [Back to…

  • /api/WebServicesApi/

    AdGuard.ApiClient.Api.WebServicesApi All URIs are relative to https://api.adguard-dns.io Method HTTP request Description ListWebServices GET /oapi/v1/web_services Lists web services ListWebServices…

Technical Documentation

  • /DENO_CONFIG/

    Shared Deno Configuration This repository uses a centralized Deno configuration pattern to ensure consistency across all Deno-based projects. Overview Similar to how .NET projects use Directory.Build…

  • /AGENTS/

    Repository Guidelines Project Structure & Module Organization data/ contains the tracked filter list (data/output/adguard_user_filter.txt) and compiler configuration files. src/ contains the multi…

  • /ENVIRONMENT_VARIABLES/

    Environment Variables Reference Comprehensive guide to environment variables supported by AdGuard scripts and modules. Overview All AdGuard scripts and modules support environment variables for…

  • /ENVIRONMENT_VARIABLE_MIGRATION/

    Environment Variable Migration Guide Overview The ad-blocking repository has standardized on a single, universal environment variable format that works consistently across all programming languages…

  • /LINEAR_DOCUMENTATION/

    Ad-Blocking Repository - Linear Documentation Project Overview A comprehensive, multi-component ad-blocking solution designed for network-level ad, tracker, and malware blocking. This repository…

  • /PHASE2_IMPLEMENTATION/

    Phase 2: Shell Reorganization + Environment Variables Status: IN PROGRESS This document tracks the implementation of Phase 2 of the PowerShell/Shell modernization project. Completed ✅ Directory…

  • /README/

    Documentation This directory contains comprehensive documentation for the ad-blocking repository. Quick Links Document Description Why Validation Matters 🔒 Start Here - Understand why security…

  • /RESTRUCTURING_SUMMARY/

    Repository Restructuring Summary Overview This document summarizes the repository structure improvements made to consolidate and organize the ad-blocking multi-language monorepo according to 202…

  • /RUNTIME_ENFORCEMENT/

    Runtime Enforcement of Validation Library Overview Runtime enforcement ensures that validation is always performed, even if a developer tries to bypass it. This is achieved through: Mandatory wrapper…

  • /RUST_MODERNIZATION_SUMMARY/

    Rust Workspace Modernization - Summary Overview This document summarizes the modernization of Rust projects in the ad-blocking repository. All Rust projects have been unified into a single workspace…

  • /RUST_WORKSPACE/

    Rust Workspace This directory contains a unified Rust workspace for all Rust projects in the ad-blocking repository. Projects The workspace includes the following crates: 1. adguard-validation (src…

  • /TEST_UPDATES_SUMMARY/

    .NET Unit Test Updates - Summary Report Overview Updated all .NET unit tests to ensure they compile and pass. Added additional tests to improve code coverage. Test Results All Tests Passing ✅ Project…

  • /TYPESCRIPT_TYPE_DEFINITIONS/

    TypeScript Type Definitions (.d.ts) Generation Overview This document describes the implementation of .d.ts type definition file generation for all TypeScript projects in the repository. Why .d.ts…

  • /VALIDATION_ENFORCEMENT/

    Validation Library Integration Requirements This document defines the mandatory integration requirements for all rules compilers to ensure consistent security validation across the codebase…

  • /WARP/

    WARP.md This file provides guidance to WARP (warp.dev) when working with code in this repository. Project scope This repo houses multiple sub-projects: TypeScript/Deno filter compiler and API client…

  • /WHY_VALIDATION_MATTERS/

    Why Validation Matters: Protecting Your Network and Privacy For Everyone: This document explains why our validation system is essential for keeping your network safe and your data private. Written for…

  • /centralized-package-management/

    Centralized Package Management Overview The repository uses Central Package Management (CPM) to manage all NuGet package versions from a single Directory.Packages.props file located at the repository…

  • /centralized-package-migration-summary/

    Centralized Package Management - Migration Summary Problem Statement Question: "Where is the centralized package system?" Answer: There wasn't one - until now! This document details the migration from…

  • /centralized-package-quick-reference/

    Centralized Package Management - Quick Reference 📍 Location The centralized package system is NOW at: 🎯 Quick Facts Total Packages Managed: 57 Projects Using It: All 12 .NET projects Version…

  • /chunking-guide/

    Parallel Chunking for Large Filter Lists This guide explains the parallel chunking feature available in the rules compilers for improved performance when processing large filter lists. Overview When…

  • /event-pipeline/

    Event Pipeline and Zero-Trust Validation This guide explains the event pipeline system available in all rules compilers for monitoring compilation progress and implementing zero-trust validation…

  • /oop-refactoring-next-steps/

    OOP PowerShell Refactoring - Next Steps Completed Work Phase 1: Common Shared Module ✅ Created src/powershell-modules/Common/ module (738 lines) CompilerLogger.psm1 (224 lines) - Structured logging…

  • /release-guide/

    Release Guide This guide explains how to create a new release of the ad-blocking repository with automatically built binaries. Overview The repository uses GitHub Actions to automatically build and…