gocloud.dev – gocloud.dev Index | Files | Directories

package cloud

import "gocloud.dev"

Package cloud contains a library and tools for open cloud development in Go.

The Go Cloud Development Kit (Go CDK) allows application developers to seamlessly deploy cloud applications on any combination of cloud providers. It does this by providing stable, idiomatic interfaces for common uses like storage and databases. Think `database/sql` for cloud products.

At the core of the Go CDK are common "portable types", implemented on top of service-specific drivers for supported cloud services. For example, objects of the blob.Bucket portable type can be created using gcsblob.OpenBucket, s3blob.OpenBucket, or any other Go CDK driver. Then, the blob.Bucket can be used throughout your application without worrying about the underlying implementation.

The Go CDK works well with a code generator called Wire (https://github.com/google/wire/blob/master/README.md). It creates human-readable code that only imports the cloud SDKs for drivers you use. This allows the Go CDK to grow to support any number of cloud services, without increasing compile times or binary sizes, and avoiding any side effects from `init()` functions.

For non-reference documentation, see https://gocloud.dev/

URLs

See https://gocloud.dev/concepts/urls/ for a discussion of URLs in the Go CDK.

As

See https://gocloud.dev/concepts/as/ for a discussion of how to write service-specific code with the Go CDK.

Index

Source Files

doc.go

Directories

PathSynopsis
awsPackage aws provides fundamental Wire providers for Amazon Web Services (AWS).
aws/awscloudPackage awscloud contains Wire providers for AWS services.
aws/rdsPackage rds contains Wire providers that are common across RDS.
azure
azure/azurecloudPackage azurecloud contains Wire providers for Azure services.
azure/azuredbPackage azuredb contains Wire providers that are common across Azure Database.
blobPackage blob provides an easy and portable way to interact with blobs within a storage location.
blob/azureblobPackage azureblob provides a blob implementation that uses Azure Storage’s BlockBlob.
blob/driverPackage driver defines interfaces to be implemented by blob drivers, which will be used by the blob package to interact with the underlying services.
blob/drivertestPackage drivertest provides a conformance test for implementations of driver.
blob/fileblobPackage fileblob provides a blob implementation that uses the filesystem.
blob/gcsblobPackage gcsblob provides a blob implementation that uses GCS.
blob/memblobPackage memblob provides an in-memory blob implementation.
blob/s3blobPackage s3blob provides a blob implementation that uses S3.
docstorePackage docstore provides a portable way of interacting with a document store.
docstore/awsdynamodbPackage awsdynamodb provides a docstore implementation backed by Amazon DynamoDB.
docstore/driverPackage driver defines interfaces to be implemented by docstore drivers, which will be used by the docstore package to interact with the underlying services.
docstore/drivertestPackage drivertest provides a conformance test for implementations of driver.
docstore/gcpfirestorePackage gcpfirestore provides a docstore implementation backed by Google Cloud Firestore.
docstore/internal
docstore/memdocstorePackage memdocstore provides an in-process in-memory implementation of the docstore API.
gcerrorsPackage gcerrors provides support for getting error codes from errors returned by Go CDK APIs.
gcpPackage gcp provides fundamental Wire providers and types for Google Cloud Platform (GCP).
gcp/cloudsqlPackage cloudsql contains Wire providers that are common across Google Cloud SQL.
gcp/gcpcloudPackage gcpcloud contains Wire providers for GCP services.
internal
mysqlPackage mysql provides functions to open MySQL databases with OpenCensus instrumentation.
mysql/awsmysqlPackage awsmysql provides connections to AWS RDS MySQL instances.
mysql/azuremysqlPackage azuremysql provides connections to Azure Database for MySQL.
mysql/gcpmysqlPackage gcpmysql provides connections to managed MySQL Cloud SQL instances.
postgresPackage postgres provides functions to open PostgreSQL databases with OpenCensus instrumentation.
postgres/awspostgresPackage awspostgres provides connections to AWS RDS PostgreSQL instances.
postgres/gcppostgresPackage gcppostgres provides connections to managed PostgreSQL Cloud SQL instances.
pubsubPackage pubsub provides an easy and portable way to interact with publish/subscribe systems.
pubsub/awssnssqsPackage awssnssqs provides two implementations of pubsub.Topic, one that sends messages to AWS SNS (Simple Notification Service), and one that sends messages to SQS (Simple Queuing Service).
pubsub/azuresbPackage azuresb provides an implementation of pubsub using Azure Service Bus Topic and Subscription.
pubsub/batcherPackage batcher supports batching of items.
pubsub/driverPackage driver defines interfaces to be implemented by pubsub drivers, which will be used by the pubsub package to interact with the underlying services.
pubsub/drivertestPackage drivertest provides a conformance test for implementations of driver.
pubsub/gcppubsubPackage gcppubsub provides a pubsub implementation that uses GCP PubSub.
pubsub/mempubsubPackage mempubsub provides an in-memory pubsub implementation.
runtimevarPackage runtimevar provides an easy and portable way to watch runtime configuration variables.
runtimevar/awsparamstorePackage awsparamstore provides a runtimevar implementation with variables read from AWS Systems Manager Parameter Store (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) Use OpenVariable to construct a *runtimevar.Variable.
runtimevar/awssecretsmanagerPackage awssecretsmanager provides a runtimevar implementation with variables read from AWS Secrets Manager (https://aws.amazon.com/secrets-manager) Use OpenVariable to construct a *runtimevar.Variable.
runtimevar/blobvarPackage blobvar provides a runtimevar implementation with variables read from a blob.Bucket.
runtimevar/constantvarPackage constantvar provides a runtimevar implementation with Variables that never change.
runtimevar/driverPackage driver defines interfaces to be implemented by runtimevar drivers, which will be used by the runtimevar package to interact with the underlying services.
runtimevar/drivertestPackage drivertest provides a conformance test for implementations of runtimevar.
runtimevar/filevarPackage filevar provides a runtimevar implementation with variables backed by the filesystem.
runtimevar/gcpruntimeconfigPackage gcpruntimeconfig provides a runtimevar implementation with variables read from GCP Cloud Runtime Configurator (https://cloud.google.com/deployment-manager/runtime-configurator).
runtimevar/gcpsecretmanagerPackage gcpsecretmanager provides a runtimevar implementation with secrets read from GCP Secret Manager (https://cloud.google.com/secret-manager).
runtimevar/httpvarPackage httpvar provides a runtimevar implementation with variables backed by http endpoint.
secretsPackage secrets provides an easy and portable way to encrypt and decrypt messages.
secrets/awskmsPackage awskms provides a secrets implementation backed by AWS KMS.
secrets/azurekeyvaultPackage azurekeyvault provides a secrets implementation backed by Azure KeyVault.
secrets/driverPackage driver defines interfaces to be implemented by secrets drivers, which will be used by the secrets package to interact with the underlying services.
secrets/drivertestPackage drivertest provides a conformance test for implementations of the secrets driver.
secrets/gcpkmsPackage gcpkms provides a secrets implementation backed by Google Cloud KMS.
secrets/localsecretsPackage localsecrets provides a secrets implementation using a locally provided symmetric key.
serverPackage server provides a preconfigured HTTP server with diagnostic hooks.
server/driverPackage driver defines an interface for custom HTTP listeners.
server/healthPackage health provides health check handlers.
server/health/sqlhealthPackage sqlhealth provides a health check for a SQL database connection.
server/requestlogPackage requestlog provides an http.Handler that logs information about requests.
server/sdserverPackage sdserver provides the diagnostic hooks for a server using Stackdriver.
server/xrayserverPackage xrayserver provides the diagnostic hooks for a server using AWS X-Ray.
Version
v0.41.0 (latest)
Published
Mar 30, 2025
Platform
linux/amd64
Last checked
56 seconds ago

Tools for package owners.