AdGuard content blocking library
Pure GO library that implements AdGuard filtering rules syntax.
You can learn more about AdGuard filtering rules syntax from this article.
TODO:
- [X] Basic filtering rules
- [X] Benchmark basic rules matching
- [X] Hosts matching rules
- [X] /etc/hosts matching
- [X] $badfilter support for host-blocking network rules
- [X] Memory optimization
- [ ] Tech document
- [ ] Cosmetic rules
- [X] Basic element hiding and CSS rules
- [ ] Proper CSS rules validation
- [ ] ExtCSS rules
- [ ] ExtCSS rules validation
- [ ] Scriptlet rules
- [ ] JS rules
- [ ] Proxy implementation
- [X] Simple MITM proxy example
- [X] Add cosmetic filters to the proxy example
- [X] Handling cosmetic modifiers $elemhide, $generichide, $jsinject
- [X] (!) Server certificate verification - it should pass badssl.com/dashboard/
- [x] Use fetch metadata to detect the content type: https://www.w3.org/TR/fetch-metadata/
- [ ] Unit tests coverage
- [ ] Fix TODOs
- [ ] Proxy - handle CSP (including tags with CSP)
- [X] Proxy - proper blocking page code
- [ ] Proxy - unblocking via a temporary cookie
- [X] Proxy - content script caching
- [X] Proxy - content script compression
- [ ] Proxy - brotli support (see here)
- [ ] Content script - babel plugin
- [ ] Content script - apply ExtCSS rules
- [ ] Content script - styles protection
- [ ] Content script - JS unit tests
- [ ] Content script - GO unit tests
- [ ] HTML filtering rules
- [ ] Advanced modifiers
How to use
TODO