开发者生态
morning
Zebkit – Chromium 作为嵌入式库
摘要
Chrome as a library — light, fast, everywhere, and easy. One API on Linux, macOS and Windows. Add it in a few lines. zebkit is Chromium's engine as one library you link into your own application: Blin...
and
the
application
its
zebkit
API
you
own
JavaScript
window
2026-11-10
1 阅读
约8分钟阅读
Riiiiichard
字号:
Chrome 作为一个库 — 轻量、快速、无处不在且简单。 Linux、macOS 和 Windows 上的一个 API。将其添加到几行中。 zebkit 是 Chromium 的引擎,作为一个库链接到您自己的应用程序中:Blink、带有每个 JIT 层的 V8、PDFium、FFmpeg 以及 Chrome 的其余部分,没有任何 Chrome 浏览器,也没有任何 Electron 运行时。您的应用程序仍然属于您,采用 C、C++、Rust、Python 或 JavaScript 语言,并具有自己的窗口和工具包。在需要网络的地方,它添加了 zebkit 视图;当需要 PDF、媒体、压缩或加密时,它会调用 zebkit 的 API:使用 C 语言,或通过 Rust、Python 和 JavaScript 的绑定(应用程序自己的页面中的 zebkit-js 和 zebkit.*)。集成它,而不是在它的基础上构建。 Electron 是一个基础:应用程序构建在其内部、运行时、窗口和包装上。 zebkit 是一部分:应用程序添加它,就像添加 SQLite 一样,并保留其流程、工具包和运输方式。它在应用程序自己的事件循环( zebkit_init() 、 zebkit_pump() )内运行,并在应用程序的窗口中绘制(作为您绘制的框架)或在您提供的窗口的子窗口(X11 窗口、NSView 或 HWND(examples/native-host ))中绘制,并返回页面所在的窗口以供系统对话框使用。拿走你需要的东西。 Web 视图,在窗口中或屏幕外,并将其框架交给您;完整的 PDF API;保存页面播放的内容;您自己的 URL 方案;来自 JavaScript 的原生 UI; Playwright 的 API 和面向代理的 CDP。使用一个或全部。真正的 Chrome 引擎。页面看到 Chromium 157:它的用户代理和客户端提示、 window.chrome 、无需单击即可阻止弹出窗口,并且没有附加任何调试器( docs/API.md 仍有不同之处,其中包括 Google 的登录)。比电子轻。与最新的 Electron 45.2.1 相比:小了 34%,与 6.6 相比,冷启动时间为 2.3 秒,页面内存减少了 29%,而且 DOM、文本布局和 JavaScript 级别(基准)。无节点。没有第二个 JavaScript 运行时,也没有通过其中一个的 IPC。该应用程序是本机代码,或者由 zebkit-js 在引擎的 V8 上运行的 JavaScript。 Chromium 的库是您的。引擎内有 17 个 C 库,Linux、macOS 和 Windows 上分别有约 7,490 个函数(这三个函数有 7,487 个,其余为每个系统自己的),在 zebkit_vendor_* 下导出:SQLite、LevelDB、BoringSSL、zlib、Zstandard、Brotli、ICU、HarfBuzz、libxml2、libwebp、libjpeg-turbo、FFmpeg、dav1d、Opus、 libvpx、FreeType 和 PDFium。您不会将它们运送两次。内置 PDF。 Chromium 的 PDFium 上的完整 API:渲染和平铺、带有布局的文本、搜索、大纲、链接、作为编辑器的注释(行尾、多云边框、带有标注和富文本的自由文本、图章、回复和状态、测量、XFDF 和 FDF)、表单、编辑、页面编辑、合并、附件、元数据和检查完整性的签名;应用程序自己的注释类型、外观、撤消事件、渲染层、OCR、字体、信任和操作的挂钩。在 C、Rust、Python 和 JavaScript 中。 2D 绘图和塑造。 位于引擎的 Skia 上, 位于其 HarfBuzz 上,无需再次发货。播放时保存的媒体。无论播放哪个页面,文件(MSE/DASH 或 HLS)都会在发送时写入 MP4 或 WebM,无需重新编码,也无需第二次下载 ( )。字节保持原样。页面对应用程序的调用通过其框架自己的 Mojo 通道,大型调用通过共享内存:没有 base64,页面的 JSON 在编写时就传递,对于小型调用与 Electron 的 IPC 一样快,对于大型调用则更快。来自 JavaScript 的页面周围的窗口。 zebkit.ui 使用 Chromium 的视图工具包绘制窗口、提示和对话框:信号、JSX、Tailwind 类以及测试和代理的自动化。 Rich UI是一个页面; zebkit.ui 是它周围的 chrome ( docs/UI.md )。原生剧作家的 API。整个 Playwright(定位器、等待完成的操作、键盘、鼠标和触摸、路由、对话框、下载、上下文、工作人员、跟踪、HAR、视频)在引擎内部运行,无需 CDP 或 Node.js 驱动程序:比 CDP 上的 Playwright 快 3 到 10 倍,并且单击需要 3 到 5 毫秒,而不是 33 毫秒( 、 docs/AUTOMATION.md )。 Playwright 自己的客户端,无论使用哪种语言,都可以使用 chromium.connect() 不变地连接到它。专为代理商打造。 tools/zebkit-mcp 通过标准输入和 HTTP,在其操作符集 ( docs/MCP.md ) 范围内,为它们提供页面、PDF、文件、媒体和本机窗口作为 MCP 工具。他们还可以通过 Playwright 的 API 或通过 Chromium 自己的 DevTools 服务器 CDP(无头或窗口)驱动 zebkit。从您的代码到桌面进行自定义。本机钩子决定引擎在 C、Rust、Python 和 JavaScript 中的功能:权限、导航、弹出窗口、对话框、下载、证书和客户端证书、登录、每个阶段的网络请求和响应、运行时设置、您自己的 URL 方案、页面可能调用的内容、页面自己之前的脚本 ( docs/ROADMAP_HOOKS.md )。一个
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱