Kitesurf 现已开源
内容提要
Cloudflare以Apache 2.0协议开源了面向AI代理的无状态浏览器Kitesurf,代码托管于GitHub,可本地运行或部署到自有Workers账户。Kitesurf完全运行在Cloudflare Workers上,能解析HTML、应用CSS、执行页面JavaScript并截图,支持Chrome DevTools协议,可配合Puppeteer使用,比Chromium更轻量省资源。它基于Blitz、Stylo、Boa等Rust/WebAssembly开源项目构建,分为引擎、页面脚本和渲染器三部分。部署需Workers付费计划,项目仍在快速开发中,欢迎社区贡献。
延伸解读
开源带来的自主部署选项
Kitesurf以Apache 2.0协议开源后,开发者可以阅读、修改代码,并在本地运行或部署到自己的Cloudflare Workers账户。这意味着不再完全依赖Cloudflare托管的Browser Run API,而是能根据自身需求调整浏览器引擎。不过部署需要Workers付费计划,因为Kitesurf使用Dynamic Workers为页面创建隔离的Worker。
轻量级代理浏览器的技术取舍
Kitesurf完全运行在Cloudflare Workers上,无需浏览器容器,能解析HTML、应用CSS、执行页面JavaScript并截图,同时支持Chrome DevTools协议,可连接Puppeteer等客户端。其目标是比Chromium使用更少的CPU和内存,并借助Workers全球网络按需扩展。但文章也指出项目仍在快速开发中,兼容性和可靠性是当前重点。
基于Rust与WebAssembly的模块化架构
Kitesurf建立在多个开源Rust/WebAssembly项目之上:Blitz负责HTML解析、DOM、布局和绘制,Stylo处理CSS解析与计算样式,Boa在WebAssembly中运行JavaScript(仅在无法使用Dynamic Workers时作为最后手段)。仓库分为Engine、PageScript和PageRenderer三部分,各包及CLI分目录存放,便于开发者探索和修改。
参与贡献的务实路径
项目欢迎社区贡献,但强调当前处于重度开发阶段。贡献指南建议先提交包含最小复现或方案思路的issue,并在获得维护者认可后再提交PR。聚焦的修复、测试、清晰证据和明确范围比大规模重写更容易审查。非代码贡献同样有价值,例如提供复现渲染问题的页面、失败的自动化工作流或文档修正。
Q&A
Kitesurf 是什么?它主要用来做什么?
Kitesurf 是 Cloudflare 开源的、面向 AI 代理的无状态浏览器,完全运行在 Cloudflare Workers 上。它能解析 HTML、应用 CSS、执行页面 JavaScript 并渲染截图,旨在为 AI 代理提供轻量、高效的网页加载与交互能力,比 Chromium 更省 CPU 和内存,并可随 Workers 网络弹性扩展。
Kitesurf 开源了吗?采用什么许可证?代码在哪里?
是的,Kitesurf 已在 GitHub 上开源,采用 Apache 2.0 许可证。代码仓库地址为 https://github.com/cloudflare/kitesurf,你可以阅读代码、本地运行、修改,并部署到自己的 Cloudflare Workers 账户。
Kitesurf 支持哪些协议或工具?能和 Puppeteer 一起用吗?
Kitesurf 支持 Chrome DevTools Protocol (CDP),因此可以连接 Puppeteer 等客户端。你可以用 puppeteer-core 通过 WebSocket 端点连接本地或部署的 Kitesurf 实例,进行页面导航、截图等操作。
Kitesurf 内部由哪些开源项目构建?分为哪几个部分?
Kitesurf 基于多个 Rust/WebAssembly 开源项目构建:Blitz 提供 HTML 解析、DOM、布局和绘制;Stylo 提供 CSS 解析、层叠和计算样式;Boa 在 WebAssembly 中运行 JavaScript(仅在无法使用 Dynamic Workers 时作为后备);Linebender 库提供文本布局和 2D 图形,Krilla 生成 PDF。Kitesurf 本身分为三部分:Engine 管理浏览器会话和客户端连接,PageScript 运行页面及其 JavaScript,PageRenderer 绘制结果。
如何在本地运行 Kitesurf?
首先满足仓库的构建要求,然后克隆仓库、安装依赖并启动引擎:git clone https://github.com/cloudflare/kitesurf.git,cd kitesurf,pnpm install --frozen-lockfile,pnpm run dev。首次构建会编译 Rust 核心及依赖,需要一些时间;后续构建会复用缓存。最后 wrangler 会在 http://127.0.0.1:8787 启动本地开发服务器,你可以用 Chrome DevTools 打开该地址试用,或通过编程方式连接。
部署 Kitesurf 到自己账户有什么要求?
部署 Kitesurf 到自己的 Cloudflare 账户需要 Workers 付费计划,因为 Kitesurf 使用 Dynamic Workers 为每个页面创建隔离的 Worker。在仓库根目录执行 pnpm run deploy 即可部署。
Kitesurf 目前开发状态如何?如何参与贡献?
Kitesurf 仍在快速开发中,团队正专注于提升兼容性(参考 Web Platform Test 进展)、可靠性和效率。欢迎贡献:先阅读贡献指南,打开 issue 提供最小复现或建议方案,并在提交 PR 前获得维护者认可。聚焦的修复(带测试、清晰证据、范围明确)比大规模重写更容易审查;非代码贡献如复现渲染 bug 的小页面、失败的自动化工作流或文档修正也很有帮助。