chromium作为一个庞大开源项目,必不可少地会使用到外界的一些开源库。同时,为了使代码解耦,google也将能抽提出来的项目也放入了thirdparty下,例如crashpad和blink。现整理了部分的三方库,并贴出其中的链接以及一些简单的介绍,具体的可以去src/thirdparty下各项目的README.chromium查看。
本文大部分采用机翻,少部分摘自网上,更少部分手写,如有错误,欢迎评论~
由于三方库实在太多,故此处为字母A~D的三方库,本文基于chromium75编写。
名字 |
介绍 |
仓库地址 |
---|---|---|
abseil-cpp | c++扩展库,基于c++标准库提供了额外的方便使用的方法。 | https://github.com/abseil/abseil-cpp |
accessibility-audit | 与无障碍功能相关的测试和实用程序代码库。 | https://raw.githubusercontent.com/GoogleChrome/accessibility-developer-tools/master/dist/js/axs_testing.js |
adobe | 用于编译flash | |
afl | 用于进程内和进程外(fork)覆盖引导的模糊测试(fuzzing)的工具。 类似于 libFuzzer。 | https://lcamtuf.coredump.cx/afl/ |
angle | Almost Native Graphics Layer Engine(几乎原生的图形层引擎)。可以理解成跨平台兼容的图形引擎,通过抽象各平台,让调用方无需担心用户的使用环境。 | https://github.com/google/angle |
apache | Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。 | |
axe-core | Axe 是用于网站和其他基于 HTML 的用户界面的无障碍测试引擎。 | https://github.com/dequelabs/axe-core/ |
bazel | 自动化构建工具(快速可靠地构建和测试任何规模的软件。) | https://github.com/bazelbuild/bazel |
bison | Bison是一种通用解析器生成器,可以作为语言的解释器。可以通过flex和bison,简单构造出自己的编程语言(内部还是C)。 | http://gnuwin32.sourceforge.net/packages/bison.htm |
blanketjs | JS 代码覆盖测试库。 | https://github.com/alex-seville/blanket |
blink | chromium使用的浏览器渲染引擎 | https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/blink/ |
boringssl | 由google维护的OpenSSL的分支,应用于google上多个应用。 | https://github.com/google/boringssl |
bouncycastle | BouncyCastle就是一个提供了很多哈希算法和加密算法的第三方库。 | https://www.bouncycastle.org/java.html |
breakpad | 多平台可用的崩溃收集处理工具. | https://chromium.googlesource.com/breakpad/breakpad |
brotli | 开源压缩算法,目前得到广泛应用。 | https://github.com/google/brotli |
bspatch | 似乎是结合bsdiff一起使用,用于Android的增量更新。 | |
ByteBuddy | ByteBuddy是一个可以在运行时动态生成java class的类库。 | https://bytebuddy.net/#/ |
Catapult | Catapult 性能看板,包含一系列性能监测工具。 | https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/ |
cct_dynamic_module | 用于安卓平台,作用不明 | https://chromium.googlesource.com/dynamicmodule |
ced | CED(Compact Encoding Detection)是基于C/C++开源的组件,能够扫描输入的字节来判断输入的字节最可能是什么文本编码格式。 | https://github.com/google/compact_enc_det |
chaijs | 前端使用的用于测试的断言库。 | https://github.com/chaijs/chai |
checkstyle | 用于java的代码规范工具 | https://github.com/checkstyle/checkstyle |
ChromeVox | Chromebook 内置了一个名为 ChromeVox 的屏幕阅读器,它可帮助视障人士使用 Chrome 操作系统。 | |
cld_3 | CLD3 是一种用于检测文本语言的神经网络模型。 | https://github.com/google/cld3 |
closure_compiler | Closure Compiler 提供非法 JavaScript 警告和潜在危险操作警告,帮助您生成错误更少且更易于维护的 JavaScript。 | https://github.com/google/closure-compiler |
colorama | 提供简单的跨平台 API 以从 Python 应用程序打印彩色终端文本。 | https://github.com/tartley/colorama.git |
crashpad | Crashpad 是一个崩溃报告系统。继承了Breakpad。 | https://chromium.googlesource.com/crashpad/crashpad/+/master/README.md |
crc32c | 支持特定于 CPU 的加速指令的 CRC32C 实现,在某些特殊的cpu下,会比crc32快10倍。 | https://github.com/google/crc32c |
custom_tabs_client | 用于Android的自定义选项卡例子程序。 | https://chromium.googlesource.com/external/github.com/GoogleChrome/custom-tabs-client |
d3 | D3(或 D3.js)是一个 JavaScript 库,用于使用 Web 标准可视化数据(用酷炫效果展示图表)。 | https://github.com/d3/d3 |
dav1d | dav1d 是所有平台上最快的 AV1 解码器。 | https://code.videolan.org/videolan/dav1d |
dawn | Dawn 是通过 C/C++ 接口公开的 WebGPU 标准的实现,是 Chromium 中 WebGPU 的底层实现。 | https://dawn.googlesource.com/dawn |
decklink | DeckLink SDK 为 Blackmagic Design DeckLink 产品线提供了一个稳定的跨平台接口。(笔者:没搞明白,像是某个产品提供的SDK,且提供的链接在chromium94已经失效) | https://www.blackmagicdesign.com/DeckLink/v10.7/Blackmagic_DeckLink_SDK_10.7.zip |
depot_tools | chromium开发必备,包含较多chromium开发脚本 | https://chromium.googlesource.com/chromium/tools/depot_tools.git |
devscripts | 此目录包含从 Debian 的 devscripts 集合中选择的工具。 | |
devtools-node-modules | devtools前端所需的node模块的镜像。 | |
dom_distiller_js | Dom Distiller 是一个从网页中提取文章内容的 java 库。另外,该库包含GWT编译的JS版本。 | https://github.com/chromium/dom-distiller |