Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,19 @@
"Bash(VSTEST_CONNECTION_TIMEOUT=180 dotnet test:*)",
"Bash(export VSTEST_CONNECTION_TIMEOUT=180)",
"Bash(find:*)",
"Bash(xargs ls:*)",
"Bash(gh run view:*)",
"Bash(cargo fmt:*)",
"Bash(cargo check:*)",
"Bash(git checkout:*)",
"Bash(git add:*)"
"Bash(python -m pytest:*)",
"Bash(pip install:*)",
"Bash(cargo build:*)",
"Bash(cargo test:*)",
"Bash(python quick_benchmark.py:*)",
"Bash(python generate_synthetic_data.py:*)",
"Bash(python -m rules_compiler:*)",
"Bash(rules-compiler:*)",
"Bash(\"C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/src/rules-compiler-rust/target/release/rules-compiler\" --benchmark --benchmark-rules 50000)",
"Bash(./target/release/rules-compiler.exe:*)",
"Bash(\"C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/target/release/rules-compiler.exe\" --benchmark --benchmark-rules 50000)",
"Bash(dotnet run:*)",
"Bash(python:*)"
],
"deny": [],
"ask": []
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/gatsby.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Build and Deploy Gatsby Website

on:
push:
branches:
- main
paths:
- 'src/website/**'
- 'docs/**'
- '.github/workflows/gatsby.yml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/website
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: src/website/package-lock.json

- name: Setup Pages
id: pages
uses: actions/configure-pages@v4

- name: Install dependencies
run: npm ci

- name: Build Gatsby site
run: npm run build
env:
PREFIX_PATHS: true

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: src/website/public

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
55 changes: 55 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ which = "7.0"
# Runtime version detection
rustc_version_runtime = "0.3"

# Async utilities
futures = "0.3"

# Logging/tracing
tracing = "0.1"

# WASM support
wasm-bindgen = "0.2"
js-sys = "0.3"
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

A comprehensive multi-language toolkit for ad-blocking, network protection, and AdGuard DNS management. Features filter rule compilers in **5 languages** (TypeScript, .NET, Python, Rust, PowerShell), plus complete **API SDKs for AdGuard DNS** in both C# and Rust with interactive console interfaces.

📚 **[View Documentation Website](https://jaypatrick.github.io/ad-blocking)** - User-friendly documentation for all features and recent improvements.

## Table of Contents

- [Features](#features)
Expand Down Expand Up @@ -154,6 +156,11 @@ ad-blocking/
│ ├── adguard-validation/ # Rust validation library
│ │ ├── adguard-validation-core/ # Core validation logic
│ │ └── adguard-validation-cli/ # CLI tool
│ ├── website/ # Gatsby documentation website
│ │ ├── src/pages/ # Static pages (home, getting started)
│ │ ├── src/templates/ # Dynamic page templates
│ │ ├── src/components/ # React components
│ │ └── gatsby-config.js # Gatsby configuration
│ └── linear/ # Linear integration scripts
├── tools/ # Utility and build scripts
│ ├── README.md # Tools documentation
Expand Down Expand Up @@ -1463,6 +1470,17 @@ Download the latest release from the [Releases page](https://github.com/jaypatri

## Documentation

### 📚 Documentation Website

**[https://jaypatrick.github.io/ad-blocking](https://jaypatrick.github.io/ad-blocking)**

A user-friendly Gatsby-powered website with:
- Organized documentation by category (Getting Started, Guides, API, Technical)
- Recent improvements and changelog
- Responsive design for desktop and mobile
- Full-text search across all documentation
- Direct links to all 58+ markdown files

### Getting Started

- [Getting Started Guide](docs/getting-started.md) - Quick installation and first compilation
Expand Down
44 changes: 44 additions & 0 deletions benchmarks/data/benchmark_data_summary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"generated_at": "2025-12-28T22:32:29.255598",
"seed": 42,
"filter_files": [
{
"name": "small",
"path": "C:\\Users\\jayson.knight\\.claude-worktrees\\ad-blocking\\reverent-lehmann\\benchmarks\\data\\small.txt",
"rules": 10000,
"lines": 10551,
"size_bytes": 244857,
"size_kb": 239.1,
"hash": "a8b64564993ca728"
},
{
"name": "medium",
"path": "C:\\Users\\jayson.knight\\.claude-worktrees\\ad-blocking\\reverent-lehmann\\benchmarks\\data\\medium.txt",
"rules": 50000,
"lines": 52541,
"size_bytes": 1222046,
"size_kb": 1193.4,
"hash": "09d5e4fe067978b8"
},
{
"name": "large",
"path": "C:\\Users\\jayson.knight\\.claude-worktrees\\ad-blocking\\reverent-lehmann\\benchmarks\\data\\large.txt",
"rules": 200000,
"lines": 210125,
"size_bytes": 4885288,
"size_kb": 4770.8,
"hash": "75511d1b8fcd9148"
},
{
"name": "xlarge",
"path": "C:\\Users\\jayson.knight\\.claude-worktrees\\ad-blocking\\reverent-lehmann\\benchmarks\\data\\xlarge.txt",
"rules": 500000,
"lines": 525228,
"size_bytes": 12217006,
"size_kb": 11930.7,
"hash": "5d783b47850bc6cc"
}
],
"total_rules": 760000,
"total_size_kb": 18134.0
}
19 changes: 19 additions & 0 deletions benchmarks/data/config-large.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "Synthetic Benchmark - Large",
"description": "Synthetic 200,000 rule filter list for benchmarking",
"version": "1.0.0",
"homepage": "https://github.com/jaypatrick/ad-blocking",
"license": "MIT",
"sources": [
{
"name": "large-source",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/large.txt",
"type": "adblock"
}
],
"transformations": [
"Deduplicate",
"RemoveEmptyLines",
"TrimLines"
]
}
19 changes: 19 additions & 0 deletions benchmarks/data/config-medium.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "Synthetic Benchmark - Medium",
"description": "Synthetic 50,000 rule filter list for benchmarking",
"version": "1.0.0",
"homepage": "https://github.com/jaypatrick/ad-blocking",
"license": "MIT",
"sources": [
{
"name": "medium-source",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
}
],
"transformations": [
"Deduplicate",
"RemoveEmptyLines",
"TrimLines"
]
}
21 changes: 21 additions & 0 deletions benchmarks/data/config-multi-2sources.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "Multi-Source Benchmark (2 sources)",
"description": "Benchmark with 2 parallel sources",
"version": "1.0.0",
"sources": [
{
"name": "source-1",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
},
{
"name": "source-2",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
}
],
"transformations": [
"Deduplicate",
"RemoveEmptyLines"
]
}
31 changes: 31 additions & 0 deletions benchmarks/data/config-multi-4sources.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"name": "Multi-Source Benchmark (4 sources)",
"description": "Benchmark with 4 parallel sources",
"version": "1.0.0",
"sources": [
{
"name": "source-1",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
},
{
"name": "source-2",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
},
{
"name": "source-3",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
},
{
"name": "source-4",
"source": "C:/Users/jayson.knight/.claude-worktrees/ad-blocking/reverent-lehmann/benchmarks/data/medium.txt",
"type": "adblock"
}
],
"transformations": [
"Deduplicate",
"RemoveEmptyLines"
]
}
Loading