AdGuard 如何通过 GitHub 实现透明化并与用户共创
在 AdGuard,我们每天都在为打造一个更安全、更舒适、更透明的互联网而奋斗。这一承诺不仅体现在我们的产品功能和严格的隐私政策中,也体现在我们尽可能保持工作开放透明这一点上,这包括与我们的社区积极互动。
正因如此,我们所有的产品都拥有公共代码库(Repository),在线空间让任何人都可以查看我们的工作内容、直接向 AdGuard 开发者报告问题,甚至为我们的开源项目做贡献。这些代码库包括我们的广告拦截应用、过滤器、浏览器扩展、DNS 解决方案、VPN 工具、开发者实用程序等等。提供此类功能的平台有很多,但迄今为止最流行的是 GitHub,所有 AdGuard 项目都存储于此。
本文按类别列出最重要的代码库,总结每个代码库的用途,并简要说明用户可以在其中做些什么。
什么是 Github 及代码库
简单来说,用户可以将 GitHub 视为代码版的「Google 文档」,多个人可以在同一个项目上协作、跟踪更改并查看是谁进行了更新。它提供一个集中的、基于云的场所来存储代码,因此可以从任何地方访问。GitHub 还具备用于审查更改、修复问题和顺利合并每个人工作的团队协作工具。
GitHub 广泛用于开源项目,允许任何人查看代码、提出改进建议并做出贡献。
代码库(Repository,常简称为 “repo”)是 GitHub 最基本的元素。它是一个可以存储代码、文件及每个文件修订历史的地方。代码库可以有多个协作者,可以是公开的,也可以是私有的。
如何开始?
您可以在下文找到关键代码库的链接,或访问 AdGuardTeam GitHub 主页查看完整列表。在大多数代码库中,您可以:
-
查看主页上的 README 文件:介绍产品及其代码库。
-
查看现有的错误报告或功能请求,进行评论和点赞。
-
创建问题(Issue) 以报告错误或请求功能。
-
检查发布版本(Releases) 以了解不同版本及其更新日志(如有需要,也可安装旧版本)。
-
安装任何旧版或测试版(如有需要)。
温馨提示:如果您是 GitHub 新手,则需要创建一个 GitHub 账户才能创建新问题或评论现有问题。
在开源代码库中,高级用户还可以进行以下操作:
- 浏览代码以了解产品逻辑、使用的技术及其实现方式。
- 复刻(Fork)并贡献代码(通过拉取请求 Pull Request)。
无论您是普通用户、技术专家还是开发者,AdGuard 都欢迎所有社区成员通过其 GitHub 代码库参与进来。
AdGuard 广告拦截产品
在这些代码库中,用户可以:
- 通过 GitHub Issues 查看和报告错误或功能请求
- 检查更新日志、跟踪发布历史、监控更新
- 下载最新、以往和测试版本(iOS 除外)
AdguardForAndroid
AdGuard Android 版的代码库,一款提供系统级广告拦截的应用。
AdguardForiOS
AdGuard iOS 版的代码库,带有 DNS 和自定义过滤器的 Safari 内容拦截器。用户还可以查看其开源代码。
AdguardForWindows
AdGuard Windows 版的代码库。非开源,GitHub 用作公开的错误追踪器。
AdguardForMac
AdGuard Mac 版的代码库,macOS 独立内容拦截器。仅用作错误追踪器。
AdguardBrowserExtension
AdGuard 浏览器扩展的代码库,为 Chrome、Firefox、Opera、Edge 提供广告拦截和增强隐私保护的扩展。
AdguardForSafari
AdGuard Safari 版的代码库,适用于 Mac 的 Safari 广告拦截扩展。用户还可以查看其开源代码。
AdGuardCLI
AdGuard Linux 版的代码库,用于管理广告拦截的命令行界面。
AdGuard VPN 产品
在这些代码库中,用户可以执行以下操作:
- 通过 GitHub Issues 查看和报告错误或功能请求
- 检查更新日志、跟踪发布历史、监控更新
- 下载最新、以往和测试版本(iOS 除外)
AdGuardVPNForiOS
AdGuard VPN iOS 版的代码库。用作公开的错误追踪器。
AdGuardVPNForAndroid
AdGuard VPN Android 版的代码库。用作公开的错误追踪器。
AdGuardVPNForWindows
AdGuard VPN Windows 版的代码库。用作公开的错误追踪器。
AdGuardVPNForMac
AdGuard VPN Mac 版的代码库,专为 macOS 设计的应用程序。
AdGuardVPNExtension
AdGuard VPN 浏览器扩展的代码库。
AdGuardVPNCLI
AdGuard VPN Linux 版的代码库,用于管理 VPN 连接的命令行界面。该代码库用作错误追踪器。
基于 DNS 的产品
AdGuardDNS
开源代码库,也用于跟踪与 AdGuard DNS 服务相关的错误和问题。用户可以执行以下操作:
- 查看和报告 DNS 问题
- 提出改进建议
AdGuardHome
AdGuard Home 的代码库,免费的全网络软件,通过 DNS 拦截广告和跟踪器。用户可以执行以下操作:
- C检查并提交错误报告或功能请求
- 审查或贡献代码
- 下载并安装发布版本
文档与知识库
知识库旨在帮助用户更好地理解和使用 AdGuard 服务。它们详细描述每个 AdGuard 产品:从功能概述和问题解决指南到高级设置手册和 API 文档。在代码库中,用户可以执行以下操作:
- 对知识库文章提出修正或编辑建议
- 提议新文章
- 测试或运行本地版本
KnowledgeBase
AdGuard 广告拦截程序及相关技术的核心文档。
KnowledgeBaseDNS
AdGuard DNS(公共和私人)、AdGuard Home 及相关一切功能的详细功能概述、故障排除指南和文档。
KnowledgeBaseVPN
AdGuard VPN 的详细功能概述和故障排除指南。
KnowledgeBaseMail
AdGuard Mail 的详细功能概述和故障排除指南。
核心库
AdGuardCoreLibs
AdGuard 的跨平台核心过滤引擎。用于 Android、Windows 和 Mac 产品。用户可以执行以下操作:
- 探索过滤逻辑和 DNS 处理方式
- 通过 Issues 报告错误和提出功能建议,通过 Pull requests 贡献代码
DNSLibs
被 CoreLibs 和 AdGuardHome 使用的 DNS 库。用户可以执行以下操作:
- 审查并贡献于底层 DNS 实现
- 提出优化建议
VPNLibs
AdGuard VPN 产品跨平台共享的代码库,用于实现 AdGuard VPN 协议。用户可以执行以下操作:
- 为 VPN 协议栈行为做贡献
- 报告或查看性能问题和错误
核心广告拦截与过滤技术
AdguardFilters
包含 AdGuard 的核心过滤器列表。用户可以执行以下操作:
- 查看和下载过滤器列表
- 创建 Issue 以报告误报或建议新规则
- 监控过滤器逻辑的更新
AdGuardSDNSFilter
AdGuard DNS 过滤器的代码库,用于 AdGuard DNS 和 DNS 过滤功能的主要 DNS 级别拦截列表。用户可以执行以下操作:
- 检查当前规则集
- 提议更改或添加
AGLint
用于 adblock 过滤器列表语法的 linter 工具。用户可以执行以下操作:
- 安装 AGLint 来检查其项目的规则问题
- 为 lint 规则做贡献
Scriptlets
在过滤规则中使用的 JavaScript 辅助脚本。用户可以执行以下操作:
- 探索可用的 Scriptlets
- 提交新 Scriptlets 的 Pull Request
tsurlfilter
用于浏览器扩展的 TypeScript 内容拦截库。用户可以执行以下操作:
- 探索过滤逻辑的实现方式
- 贡献修复和功能
还有更多
以上,我们列出了总共 96 个公共代码库中的 27 个主要 AdGuard 代码库。如果您想深入探索,可以在 AdGuardTeam GitHub 页面找到其余代码库。
期待大家的反馈意见!祝您使用愉快,一切顺遂。