基于 V8、Rust 和 Tokio 构建、默认安全的 JavaScript、TypeScript 与 WebAssembly 运行时。
cloudflare/workerd
基于 Cloudflare Workers 同款代码的 JavaScript/Wasm 服务端运行时,可用于自托管与本地开发。
- Star
- 9,036
- Fork
- 796
- 未关闭 Issue
- 813
- 最近提交
- 5小时前
这是什么?
workerd 是一个服务端运行时,可以执行为 Cloudflare Workers 编写的 JavaScript 和 WebAssembly 代码。它既能作为应用服务器自托管 Workers 应用,也能作为本地开发和测试工具,或者作为可编程的正向/反向 HTTP 代理,用来拦截、修改和路由网络请求。
应用可以拆分为彼此解耦的 nanoservice,它们在同一线程和进程内互相调用。资源通过 Cap'n Proto 配置文件中的 capability bindings 连接,而不是依赖全局命名空间。内置 API 遵循 fetch() 等 Web 平台标准,每个版本都对应一个兼容性日期,可以模拟历史版本的 API 行为。
项目使用 C++ 编写,通过 Bazel 构建,预编译二进制通过 npm 分发。官方测试覆盖 Linux、macOS 和 Windows,并可通过 MINIFLARE_WORKERD_PATH 环境变量与 Wrangler 配合做本地开发。项目明确说明它本身不是加固的沙箱,运行不可信代码时应放在虚拟机等隔离环境中。
核心功能
- 01运行为 Cloudflare Workers 编写的 JavaScript 和 Wasm 代码。
- 02将应用拆分为可在同一进程内调用的 nanoservice。
- 03使用 Cap'n Proto 配置文件和 capability bindings 连接资源。
- 04支持兼容性日期,可模拟历史版本的 API 行为。
- 05可作为正向或反向的可编程 HTTP 代理运行。
- 06支持通过 --socket-fd 继承 systemd 提供的套接字。
适用场景
- 自托管原本为 Cloudflare Workers 设计的应用。
- 配合 Wrangler 在本地开发和测试 Workers 代码。
- 构建可编程的 HTTP 代理,用于修改或路由请求。
快速上手
- 1
使用 Bazel 构建 workerd 二进制文件
bazel build //src/workerd/server:workerd - 2
编写配置文件(例如 my-config.capnp),定义服务和套接字
- 3
使用 workerd 运行你的配置
workerd serve my-config.capnp
使用前须知
- workerd 不是经过加固的沙箱,运行不可信代码时需要放在虚拟机或其他安全沙箱中。
- 从源码构建需要较大的工具链,例如 Linux 上的 clang 22+、libc++ 22+ 和 LLD 22+,或 macOS 上的 Xcode 16.3。
- 官方仅在 Linux、macOS 和 Windows 的 x86-64 与 arm64 架构上测试。
标签
常见问题
- workerd 是什么?
- 基于 Cloudflare Workers 同款代码的 JavaScript/Wasm 服务端运行时,可用于自托管与本地开发。 workerd 是一个服务端运行时,可以执行为 Cloudflare Workers 编写的 JavaScript 和 WebAssembly 代码。它既能作为应用服务器自托管 Workers 应用,也能作为本地开发和测试工具,或者作为可编程的正向/反向 HTTP 代理,用来拦截、修改和路由网络请求。
- workerd 可以免费使用吗?用的什么许可证?
- workerd 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- workerd 还在维护吗?
- 活跃维护中。workerd 最近一次提交是在 2026年10月21日。
- workerd 适合用来做什么?
- 自托管原本为 Cloudflare Workers 设计的应用。 配合 Wrangler 在本地开发和测试 Workers 代码。 构建可编程的 HTTP 代理,用于修改或路由请求。
- workerd 怎么安装和运行?
- 使用 Bazel 构建 workerd 二进制文件: bazel build //src/workerd/server:workerd 编写配置文件(例如 my-config.capnp),定义服务和套接字 使用 workerd 运行你的配置: workerd serve my-config.capnp
- 在哪里获取 workerd?
- 源代码和安装说明在 GitHub 上:https://github.com/cloudflare/workerd
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
单个 Rust 二进制文件实现的自托管 Cloudflare Workers 兼容平台,可在一台机器上运行 Workers、KV、D1、R2 等服务。
Node.js 是一个开源、跨平台的 JavaScript 运行时,可在浏览器之外运行 JavaScript。
一体化 JavaScript/TypeScript 工具链,集运行时、打包器、测试运行器和包管理器于一个可执行文件。
基于 Cloudflare Workers 部署的自建邮箱服务,一个域名即可创建多个邮箱,支持收发邮件与附件。
基于 Cloudflare Durable Objects 构建持久化、有状态 AI Agent 的 TypeScript SDK。