Repolode
google

google/go-cloud

一个 Go 语言库,提供可移植的 Blob 存储、发布订阅、数据库和密钥等接口,让同一份代码运行在不同云平台上。

Star
9,920
Fork
863
未关闭 Issue
2
最近提交
4天前

这是什么?

Go Cloud Development Kit(Go CDK)让 Go 开发者通过统一的惯用接口来编写云应用,涵盖 Blob 存储、数据库、消息等常见服务。应用代码只需调用一套 API,具体云厂商的细节由对应的驱动处理,同一个程序因此可以部署到不同的云平台上。

该套件提供 Blob 存储、发布订阅、运行时可变变量、文档存储、密钥管理以及 MySQL、PostgreSQL 连接等能力,并附带请求日志、链路追踪和健康检查等服务端工具。其设计参照了 Go 标准库中的 database/sql 包,可与 Wire 代码生成器配合使用,生成的代码只引入应用实际用到的云 SDK。

项目的 API 目前仍处于 alpha 阶段。维护者更倾向于维护本仓库已有的驱动,新的云服务驱动通常建议放在独立仓库中开发。

核心功能

  • 01可移植的 Blob 存储接口,支持 S3、Google Cloud Storage 等后端。
  • 02发布订阅、运行时变量、文档存储和密钥管理均提供统一接口。
  • 03支持连接 MySQL(含 MariaDB)和 PostgreSQL 数据库。
  • 04内置服务端请求日志、链路追踪和健康检查。
  • 05与 Wire 配合使用,只编译实际用到的云 SDK。

适用场景

  • 构建需要在 AWS、GCP 或 Azure 上运行、且不想重写存储代码的 Go 服务。
  • 通过抽象对象存储,让本地测试和生产环境使用不同的后端。
  • 为多云 Go 应用加入可移植的密钥管理或发布订阅功能。

快速上手

  1. 1

    在 Go 项目中安装 Go CDK 模块

    go get gocloud.dev
  2. 2

    阅读项目网站上的文档和教程

使用前须知

  • README 称其 API 仍处于 alpha 阶段。
  • 项目倾向于维护现有驱动,不太可能在主仓库接受新的驱动。
  • 你需要的特定云驱动可能位于单独的外部仓库中。

标签

常见问题

go-cloud 是什么?
一个 Go 语言库,提供可移植的 Blob 存储、发布订阅、数据库和密钥等接口,让同一份代码运行在不同云平台上。 Go Cloud Development Kit(Go CDK)让 Go 开发者通过统一的惯用接口来编写云应用,涵盖 Blob 存储、数据库、消息等常见服务。应用代码只需调用一套 API,具体云厂商的细节由对应的驱动处理,同一个程序因此可以部署到不同的云平台上。
go-cloud 可以免费使用吗?用的什么许可证?
go-cloud 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
go-cloud 还在维护吗?
活跃维护中。go-cloud 最近一次提交是在 2026年11月2日。
go-cloud 适合用来做什么?
构建需要在 AWS、GCP 或 Azure 上运行、且不想重写存储代码的 Go 服务。 通过抽象对象存储,让本地测试和生产环境使用不同的后端。 为多云 Go 应用加入可移植的密钥管理或发布订阅功能。
go-cloud 怎么安装和运行?
在 Go 项目中安装 Go CDK 模块: go get gocloud.dev 阅读项目网站上的文档和教程
在哪里获取 go-cloud?
源代码和安装说明在 GitHub 上:https://github.com/google/go-cloud

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目