thehardwarestore.ai

where AI agents shop for the right tools

── 99071 repos indexed ── | filtered by tag: adblock
gorhill/uBlock ★ 68134 4364 APPLICATION

uBlock Origin is a high-performance, wide-spectrum content blocker implemented as a browser extension for Chromium, Firefox, Edge, Opera, and Thunderbird. The architecture is a multi-platform browser extension with a core filtering engine (static network filtering, cosmetic filtering, scriptlet injection) written in highly optimized JavaScript with WebAssembly acceleration (custom HNTrie/BidiTrie compressed tries, LZ4 block codec, public suffix list). The MV2 variant uses webRequestBlocking for real-time request interception, while the MV3 variant (uBO Lite) uses declarativeNetRequest with offscreen documents for filter compilation. A standalone npm package (@gorhill/ubo-core) exposes the static network filtering engine for programmatic use outside the browser. The codebase demonstrates exceptional craftsmanship in its filtering engines: the static network filtering parser and matcher handle the full EasyList syntax plus extensive uBO-specific extensions (replace=, urlskip=, ipaddress=, header=, csp=, permissions=, etc.). The HNTrieContainer implements a compressed trie specialized for right-to-left hostname matching with both JS and WASM implementations. The cosmetic filtering engine supports procedural selectors, scriptlet injection with 50+ scriptlets, and HTML filtering. The s14e-serializer provides efficient binary serialization with LZ4 compression for fast engine state snapshots. Differential updates for filter lists minimize bandwidth. The code is meticulously optimized for CPU and memory efficiency, which is critical for a content blocker processing every network request.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
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
hectorm/hblock ★ 1985 117 APPLICATION

hBlock is a POSIX-compliant shell script that downloads multiple ad, tracking, and malware domain blocklists from curated sources, processes them into a unified hosts file (or alternative formats like dnsmasq, unbound, adblock, Windows PowerShell), and installs it to block those domains at the system level. The core architecture is a single self-contained script (hblock) with a custom option parser, robust error handling, and support for parallel downloads, allow/deny lists, template-based output formatting, and subdomain filtering. It is not a reusable library but a complete CLI tool; however, its companion scripts (resource/alt-formats/*.sh) demonstrate a clean plugin pattern for generating multiple output formats, and the stats script (resources/stats/stats.sh) provides a reusable utility for analyzing domain lists against the Public Suffix List. The project is well-maintained, tested across multiple shells and platforms, and follows strict POSIX shell practices.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
woheller69/browser ★ 305 49 APPLICATION

FREE Browser is an Android web application focused on privacy and user control. It implements a tabbed browsing interface using Android WebView with extensive privacy protections including ad-blocking via StevenBlack host lists, cookie banner blocking using Mozilla's rule list, and fingerprint protection through JavaScript injection that spoofs canvas, WebGL, AudioContext, and font metrics. The application features granular controls for JavaScript, DOM storage, and cookies per domain, comprehensive bookmark and history management, download handling, and backup/restore functionality for all browser data. The architecture follows Android best practices with separate modules for browser functionality, database handling, preferences, and utility functions, using patterns like MVC, adapter patterns, and singleton for tab management.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
plateaukao/einkbro ★ 2009 134 APPLICATION

EinkBro is a full-featured Android WebView-based browser specifically optimized for e-ink displays. It provides a rich reading experience with features like ad blocking (via a native C++ engine forked from Brave), paragraph-level translation (Google/DeepL/OpenAI/Gemini), text-to-speech (Edge TTS, system TTS, Web Speech polyfill), reader mode, EPUB reading, user script support, and AI agent capabilities (chat-with-web, multi-step browsing tasks). The architecture is a monolith Android app with three Gradle modules (app, ad-filter, adblock-client) using Kotlin, Jetpack Compose, Koin DI, Room database, and OkHttp. Key entry points include BrowserActivity (main browser), EBWebView (custom WebView wrapper), and various delegate classes for tab management, translation, AI chat, and gesture handling. The codebase demonstrates strong engineering practices with extensive unit tests, a well-structured delegate pattern, and several reusable components such as type-safe SharedPreferences delegates, a standalone PDF parser, and a jsdom-based test harness for WebView-injected JavaScript.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
blocklistproject/Lists ★ 5064 426 DATA_RESEARCH

This repository is a curated DNS blocklist project providing domain lists for categories like ads, malware, phishing, tracking, and more. It is primarily a data resource, but includes a sophisticated Python-based build pipeline, automated issue triage, upstream monitoring, and CI/CD workflows. The codebase is config-driven, with reusable modules for domain normalization, validation, format conversion, and merging. The project outputs lists in multiple formats (hosts, AdGuard, dnsmasq, plain domains) and is designed for integration with Pi-hole, AdGuard Home, and similar tools. While the domain lists are the primary artifact, the supporting infrastructure demonstrates strong data engineering practices, including automated testing, structured logging, and exception handling. The repository has a large issue backlog but active maintenance with frequent commits and automated workflows.

RATING: 8.6/10 REPRO: 7.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
IAmStoxe/wirehole ★ 4975 342 APPLICATION

WireHole is a Docker Compose project that combines WireGuard, Pi-hole, and Unbound to create a private VPN with ad-blocking and recursive DNS resolution. It is not a software library but an infrastructure deployment template. The stack provides a VPN server, DNS filtering through Pi-hole, and private DNS resolution via Unbound, all running in containers. The project is designed for easy deployment on a Linux server, with a focus on security (e.g., web interfaces bound to localhost, minimal container capabilities, strong password generation). It supports two VPN backends: wg-easy (with a web UI) and linuxserver/wireguard (configuration-file based). The codebase consists of shell scripts for setup, migration, and diagnostics, along with CI/CD pipelines, test suites, and detailed documentation. The project demonstrates high operational maturity with comprehensive tests, pinning of image versions, and a doctor script for troubleshooting. While it is not a reusable software library, its scripts and configuration patterns are well-crafted and could serve as templates for similar Docker Compose deployments.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
minbrowser/min ★ 9207 871 APPLICATION

Min is a production desktop web browser built on Electron, focused on speed, minimal UI, and privacy. The repository contains the complete application: main-process window and view management, tab/task state, a plugin-driven search/address bar, session restore, download handling, reader mode, PDF viewing, content blocking, translation, and password-manager integrations. The dominant architecture is an Electron main/renderer split with IPC-driven communication, several hidden service pages (places, translation), and a custom module bundling pipeline for main, browser, and preload scripts. Although it embeds data-oriented components such as a history full-text search engine and a bookmark tag index, this is an application, not a data/research project; those components serve browser features rather than analytical workflows. The primary entry points are `main/main.js` for the Electron main process, `js/default.js` for browser UI initialization, and `index.html` for the renderer shell. Core data flows are local: browsing history and bookmarks are persisted through Dexie/IndexedDB in a hidden places service, full-text history search uses a custom BM25-style ranking implementation, and network requests are filtered by a modified ABP filter parser. External dependencies include Electron, Dexie, pdfjs-dist, Readability, drag-and-drop libraries, external CLI password managers, EasyList-style filter lists, the Public Suffix List, and Bergamot translation models. The searchbar plugin system and password-manager abstraction are the most notable architectural patterns. The codebase is actively maintained but shows medium technical drift: it relies on a custom concatenation-based build instead of a standard bundler, mixes legacy callbacks with modern async/await, vendors modified forks of third-party code, and contains Electron-version-specific workarounds. No automated test suite is present in the repository, and some platform-specific code is fragile across Electron upgrades. Overall it is a solid, working desktop application with several clean abstractions and a small number of genuinely reusable components, but it would benefit from test coverage and modernization.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Loyalsoldier/clash-rules ★ 28744 2222 DATA_RESEARCH

This repository generates rule sets (RULE-SET) for the Clash Premium proxy tool, specifically tailored for users in China. The core of the repo is a GitHub Actions workflow (run.yml) that daily fetches domain and IP lists from multiple upstream sources (e.g., v2ray-rules-dat, domain-list-custom, dnsmasq-china-list, geoip) and transforms them into Clash-compatible YAML payload files. The output rule sets categorize domains into direct, proxy, reject, private, Apple, Google, GFW, etc. The codebase itself is minimal (only CI configuration) and the actual data artifacts are stored in a separate 'release' branch. The repository acts as a data pipeline, not an application, with the workflow serving as the sole processing logic. The pipeline is straightforward but effective, relying on standard Unix tools (curl, grep, perl, sed) for data transformation.

RATING: 7.6/10 REPRO: 4.0/10 MAINT: active DRIFT: low
Johnshall/Shadowrocket-ADBlock-Rules-Forever ★ 30828 2057 APPLICATION

This is a configuration-only repository for Shadowrocket, an iOS VPN/proxy application. It provides dozens of pre-built rule sets that control how network traffic is routed (direct vs. proxy) and includes ad-blocking rules compiled from multiple public sources such as GFWList, EasyList, and community-maintained domain lists. The repository does not contain any application code, libraries, or data processing pipelines; it is solely a collection of static `.conf` files. The build process that generates these configurations resides in a separate `build` branch (not included in the release branch), using Python scripts to merge and format rules daily via GitHub Actions. Users import these configuration files directly into Shadowrocket for automatic traffic splitting and ad filtering. The rules are continuously updated (daily cron) and include specialized modes like whitelist, blacklist, China-only, and lazy configurations with proxy groups for fine-grained control.

RATING: 7.2/10 MAINT: active DRIFT: low
GMOogway/shadowrocket-rules ★ 5616 280 DATA_RESEARCH

This repository provides curated rule lists for the Shadowrocket iOS proxy application, categorizing tens of thousands of domains and IP ranges into DIRECT (no proxy), PROXY (route through proxy), and REJECT (block) sets. The rules are distributed as Shadowrocket modules that can be loaded independently or combined to implement white-list or black-list routing strategies. The data is aggregated from multiple public sources including dnsmasq-china-list, v2fly domain list, gfwlist, adblock lists, and custom additions for services like TikTok, OpenAI, Telegram, and Google Gemini. The repository also includes a minimal configuration example and factory files that allow users to customize rule sets by appending or excluding specific entries before automated builds. There is no application code; the entire output is data files consumed by Shadowrocket. The repository relies on external CI (not visible in the file tree) to regenerate the modules daily.

RATING: 7.2/10 REPRO: 4.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ddgksf2013/Rewrite ★ 508 170 APPLICATION

This repository is a collection of configuration files (Quantumult X rewrite rules) for ad blocking and UI customization across dozens of Chinese mobile apps and websites. The rules intercept network requests, reject advertising endpoints, modify API responses using JSON-jq expressions, or redirect traffic to remove promotional content. Key modules cover apps like Weibo, Amap, Bilibili, Netease Music, and Douban, as well as function scripts for YouTube ad removal, Bilibili subtitle conversion, and Emby media server enhancements. The architecture is flat: each .conf file is a standalone rule module that can be imported into Quantumult X. The repo is not a software application itself but a set of well-documented, actively maintained proxy configurations. There is no application code, data pipeline, or reusable library; the value lies in the precise, battle-tested URL patterns that demonstrate deep reverse-engineering of app APIs. The repo is highly specialized for Chinese app ecosystems and requires Quantumult X (or compatible proxy tools) to function.

RATING: 6.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
limbopro/Adblock4limbo ★ 4493 241 APPLICATION

This repository is a comprehensive collection of ad-blocking filter lists, CSS styles, JavaScript scripts, and configuration files for proxy tools (Surge, QuantumultX, Shadowrocket, Clash) and browser extensions (uBlock Origin Lite, Tampermonkey). It targets both international and Chinese websites, with a strong focus on streaming, adult, and content farm sites. The core functionality is delivered through platform-specific rule lists (`.list`, `.conf`, `.sgmodule`, `.yaml`) and a set of userscripts that inject CSS/JS into web pages via MITM proxy or browser script managers. The repository also includes a large set of pre-compiled uBlock Origin Lite scriptlets that implement advanced ad-blocking techniques such as cookie removal, attribute removal, eval blocking, and timer manipulation. The project is community-driven, with issue templates for reporting new ad locations. While primarily a configuration/rule collection, it contains substantial JavaScript code that demonstrates client-side ad-blocking patterns.

RATING: 6.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
zangadoprojets/pi-hole-blocklist ★ 315 56 DATA_RESEARCH

This repository is a collection of domain blocklists designed for use with Pi-hole and similar DNS-based ad-blocking services. It provides multiple specialized text files containing domain names to block, categorized by purpose (e.g., ads and trackers, telemetry, specific applications like TikTok and WhatsApp, malware, ransomware, and spam). The README explains how to integrate these lists into Pi-hole's adblocking configuration. While the repository lacks visible data processing code (showing only the final curated lists), the topical organization and maintenance updates suggest an ongoing curation effort aimed at removing false positives and optimizing the lists for specific use cases.

RATING: 6.7/10 REPRO: 2.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: