AdGuardian Term welcomes contributions of all kinds — code, bug reports, documentation improvements, and feature requests. The project follows the Contributor Covenant v2.1 as its Code of Conduct, and is fully open source under the MIT license.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lissy93/adguardian-term/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure you have the following installed:- Rust toolchain — install via rustup. Run
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shto get started. - Git — required to clone the repository and manage branches.
- make (optional) — used to run the convenience targets defined in the project
Makefile. Cargo commands can be used directly as an alternative.
Local Setup
Fork the repository
Head to github.com/Lissy93/AdGuardian-Term and click Fork to create your own copy of the repo under your GitHub account.
Run in development mode
Make your changes
Edit source files under
src/. The codebase is split into fetch/, widgets/, ui.rs, welcome.rs, and main.rs — see the Architecture page for a full breakdown.Run the test suite
#[cfg(test)] blocks co-located with the source files they cover.Development Commands
The following Cargo commands cover the full development workflow. Each also has a correspondingmake target defined in the project Makefile.
| Command | Make equivalent | Purpose |
|---|---|---|
cargo run | make run | Build and run the app in development mode |
cargo build --all-features | make build | Compile all source files and dependencies |
cargo test --all-features | make test | Run unit tests |
cargo check --all-features | make check | Check for compile errors without producing a binary |
cargo clippy -- -D warnings | make clippy | Lint for common mistakes and style issues |
cargo fmt -- --check | make fmt | Verify code formatting |
cargo doc --no-deps --all-features | make doc | Generate Rust API documentation from doc comments |
cargo bench | make bench | Run benchmark tests |
CI/CD
All testing, building, and publishing is handled by GitHub Actions. The table below summarises each workflow and what triggers it.| Workflow | Trigger | What it does |
|---|---|---|
| CI | Every PR and push | Runs quality checks (fmt, clippy, tests, build, docs) and security checks (zizmor, secret scan, dependency review) |
| Tag | Merge to main | Bumps the crate version and pushes a new git tag |
| Release | New tag pushed | Compiles binaries for all supported targets and drafts a GitHub Release with SHA256 checksums and provenance attestations |
| Publish crates | Tag event | Publishes the compiled crate to crates.io |
| Docker | Tag or source change | Builds and pushes the Docker image to DockerHub and GHCR |
| Generate Rust Docs | Tag event | Generates documentation from Rustdoc and uploads to GitHub Pages at lissy93.github.io/AdGuardian-Term/adguardian |
| Mirror | Push to main | Syncs the repository to the Codeberg mirror at codeberg.org/alicia/adguardian |
Not a Coder?
There are plenty of other ways to support AdGuardian Term:- Star the repo on GitHub to help others discover the project.
- Sponsor the author via GitHub Sponsors.
- Share the project with others who run AdGuard Home.
- Report bugs by opening an issue — detailed reproduction steps and terminal output are always helpful.
- Improve the docs — documentation fixes and additions are just as valuable as code contributions.