#语法 #过滤 #规则 #来源 #资源 #解析器 #plus

adblock

为 Adblock Plus 语法(例如 EasyList,EasyPrivacy)的过滤解析和匹配提供原生的 Rust 模块。

116 个版本

0.8.12 2024 年 8 月 7 日
0.8.11 2024 年 6 月 5 日
0.8.10 2024 年 5 月 23 日
0.8.8 2024 年 2 月 21 日
0.1.28 2019 年 7 月 22 日

#238 in 解析器实现

Download history 407/week @ 2024-04-29 264/week @ 2024-05-06 441/week @ 2024-05-13 723/week @ 2024-05-20 525/week @ 2024-05-27 730/week @ 2024-06-03 257/week @ 2024-06-10 142/week @ 2024-06-17 116/week @ 2024-06-24 219/week @ 2024-07-01 226/week @ 2024-07-08 94/week @ 2024-07-15 312/week @ 2024-07-22 966/week @ 2024-07-29 461/week @ 2024-08-05 181/week @ 2024-08-12

每月 1,925 次下载
用于 3 crates

MPL-2.0 许可证

690KB
13K SLoC

adblock-rust

crates.io npmjs.com docs.rs Build Status License

让您重新掌控您的浏览体验。

adblock-rust 是 Brave 内置广告拦截器的引擎,作为库提供给任何人使用。它具有以下功能:

  • 网络拦截
  • 外观过滤
  • 资源替换
  • 主机语法
  • uBlock Origin 语法扩展
  • iOS 内容拦截语法转换
  • 编译为本地代码或 WASM
  • Rust 绑定 (crates)
  • JS 绑定 (npm)
  • 社区维护的 Python 绑定 (pypi)
  • 高性能!

入门

adblock-rust 被用于多个项目,包括浏览器、研究工具和代理。它可能也适合您的项目!

请参阅 docs.rs 获取详细的 API 文档。

还可以查看 Rust 示例NodeJS 示例

可选功能

以下 cargo 功能 可用于调整 adblock-rust 以最适合您的用例。

CSS 验证(在规则解析期间)(css-validation)

在解析外观过滤规则时,可以通过启用 css-validation 功能来包含 CSS 验证的内置实现(通过 selectorscssparser 包)。这将导致 adblock-rust 拒绝具有无效 CSS 语法的外观过滤规则。

内容拦截格式转换(content-blocking

启用 content-blocking 功能可以为 adblock-rust 提供支持,将标准的 ABP 风格规则转换为苹果的 内容阻止格式,该格式可以导出用于 iOS 和 macOS 平台。

外部域名解析(embedded-domain-resolver

默认情况下,adblock-rust 配备了一个内置的域名解析实现(通过 addr crate),通常足以满足独立使用场景。对于更高级的使用场景,禁用 embedded-domain-resolver 功能将允许 adblock-rust 使用外部域名解析实现。这在将 adblock-rust 嵌入浏览器时非常有用,可以减少二进制膨胀并提高一致性。

解析来自 uBlock Origin 格式的资源(resource-assembler

adblock-rust 使用与 uBlock Origin 兼容的资源进行脚本注入和重定向规则。resource-assembler 功能允许 adblock-rust 直接从 uBlock Origin 仓库使用的文件格式解析这些资源。

线程安全性(object-poolingunsync-regex-caching

object-poolingunsync-regex-caching 功能为规则匹配速度和引擎使用的内存量提供了优化。虽然可以通过禁用这些功能来使引擎 Send + Sync,但建议仅在单个线程上访问引擎以保持最佳性能,尽管如此。

依赖项

~4.5–8MB
~176K SLoC