支持。
Cloudflare 对 Go 语言的支持可以从两个维度来看:应用开发(在 Cloudflare 平台上运行 Go) 和 资源管理(使用 Go 管理 Cloudflare)。
1. 核心支持:在 Cloudflare Workers 上运行 Go
目前有两种主要方式,取决于你的性能需求和预算:
A. WebAssembly (Wasm) - ⚠️ 最成熟、最常用
这是目前在 Cloudflare Workers 上运行 Go 的标准方式。Worker 本质上是 V8 引擎(JavaScript/Wasm 运行时),不能直接跑二进制文件,所以需要将 Go 编译为 Wasm。
-
特点: 轻量、启动极快(毫秒级)、Serverless 架构。
-
工具链:
-
TinyGo (强烈推荐): 官方 Go 编译器生成的 Wasm 文件通常较大(2MB+),容易超出免费版 Worker 的 1MB 限制。TinyGo 专门为嵌入式和 Wasm 优化,编译出的文件极小(几百 KB)。
-
syumai/workers: 社区广泛使用的 Go 框架,提供了类似
net/http的开发体验,让你能用熟悉的 Go 语法写 Worker。
-
-
局限: 不支持所有 CGO 特性;不支持多线程(Goroutine 是单线程调度的);标准库的某些部分可能受限。
B. Cloudflare Containers (Beta) - 🆕 2025 新特性
这是 Cloudflare 在 2025 年推出的新功能(Containers on Workers)。它允许你直接部署 Docker 容器。
-
特点: 可以运行标准的 Go 二进制文件,不需要编译成 Wasm。你可以使用完整的 Linux 环境、多核 CPU 和标准 Go Runtime。
-
适用场景: 需要长时间运行、高计算量、或依赖复杂 C 库的 Go 应用。
-
局限: 这是一个付费功能(通常不包含在免费 Worker 套餐中),启动速度比纯 Worker 稍慢。
2. 管理支持:官方 Go SDK
如果你是想写一个 Go 程序来自动化管理 Cloudflare 的配置(如自动修改 DNS、配置防火墙规则),Cloudflare 提供了官方的一流支持。
-
库名称:
github.com/cloudflare/cloudflare-go -
状态: 官方维护,更新非常及时,覆盖了 Cloudflare API v4 的绝大部分功能。
-
用途: 它是很多 Terraform Provider 和自动化运维工具的底层核心。
总结与建议
| 你的需求 | 推荐方案 | 关键工具 |
| :--- | :--- | :--- |
| 写轻量级 API / 边缘计算 | Workers + Wasm | TinyGo + syumai/workers 库 |
| 迁移现有复杂 Go 后端 | Containers on Workers | Docker + 标准 go build |
| 用代码管理 DNS/CDN 配置 | 官方 API SDK | cloudflare-go 库 |
一句话建议:
如果你是想体验“边缘计算”或写个简单的 API 网关,请务必使用 TinyGo,否则原生的 Go 编译器生成的体积会让你非常痛苦。