Documentation ¶
Overview ¶
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 by cloud providers. For example, objects of the blob.Bucket portable type can be created using gcsblob.OpenBucket, s3blob.OpenBucket, or any other provider. 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 providers you use. This allows the Go CDK to grow to support any number of cloud providers, 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 provider-specific code with the Go CDK.
Directories ¶
Path | Synopsis |
---|---|
Package aws provides fundamental Wire providers for Amazon Web Services (AWS).
|
Package aws provides fundamental Wire providers for Amazon Web Services (AWS). |
awscloud
Package awscloud contains Wire providers for AWS services.
|
Package awscloud contains Wire providers for AWS services. |
rds
Package rds contains Wire providers that are common across RDS.
|
Package rds contains Wire providers that are common across RDS. |
azure
|
|
azurecloud
Package azurecloud contains Wire providers for Azure services.
|
Package azurecloud contains Wire providers for Azure services. |
azuredb
Package azuredb contains Wire providers that are common across Azure Database.
|
Package azuredb contains Wire providers that are common across Azure Database. |
Package blob provides an easy and portable way to interact with blobs within a storage location, hereafter called a "bucket".
|
Package blob provides an easy and portable way to interact with blobs within a storage location, hereafter called a "bucket". |
azureblob
Package azureblob provides a blob implementation that uses Azure Storage’s BlockBlob.
|
Package azureblob provides a blob implementation that uses Azure Storage’s BlockBlob. |
driver
Package driver defines a set of interfaces that the blob package uses to interact with the underlying blob services.
|
Package driver defines a set of interfaces that the blob package uses to interact with the underlying blob services. |
drivertest
Package drivertest provides a conformance test for implementations of driver.
|
Package drivertest provides a conformance test for implementations of driver. |
fileblob
Package fileblob provides a blob implementation that uses the filesystem.
|
Package fileblob provides a blob implementation that uses the filesystem. |
gcsblob
Package gcsblob provides a blob implementation that uses GCS.
|
Package gcsblob provides a blob implementation that uses GCS. |
memblob
Package memblob provides an in-memory blob implementation.
|
Package memblob provides an in-memory blob implementation. |
s3blob
Package s3blob provides a blob implementation that uses S3.
|
Package s3blob provides a blob implementation that uses S3. |
docstore
|
|
mongodocstore
Module
|
|
Package gcerrors provides support for getting error codes from errors returned by Go CDK APIs.
|
Package gcerrors provides support for getting error codes from errors returned by Go CDK APIs. |
Package gcp provides fundamental Wire providers and types for Google Cloud Platform (GCP).
|
Package gcp provides fundamental Wire providers and types for Google Cloud Platform (GCP). |
cloudsql
Package cloudsql contains Wire providers that are common across Google Cloud SQL.
|
Package cloudsql contains Wire providers that are common across Google Cloud SQL. |
gcpcloud
Package gcpcloud contains Wire providers for GCP services.
|
Package gcpcloud contains Wire providers for GCP services. |
Package health provides health check handlers.
|
Package health provides health check handlers. |
sqlhealth
Package sqlhealth provides a health check for a SQL database connection.
|
Package sqlhealth provides a health check for a SQL database connection. |
internal
|
|
batcher
Package batcher supports batching of items.
|
Package batcher supports batching of items. |
docstore
Package docstore provides a portable implementation of a document store.
|
Package docstore provides a portable implementation of a document store. |
docstore/driver
Package driver defines a set of interfaces that the docstore package uses to interact with the underlying services.
|
Package driver defines a set of interfaces that the docstore package uses to interact with the underlying services. |
docstore/drivertest
Package drivertest provides a conformance test for implementations of driver.
|
Package drivertest provides a conformance test for implementations of driver. |
docstore/dynamodocstore
Package dynamodocstore provides a docstore implementation backed by AWS DynamoDB.
|
Package dynamodocstore provides a docstore implementation backed by AWS DynamoDB. |
docstore/firedocstore
Package firedocstore provides an implementation of the docstore API for Google Cloud Firestore.
|
Package firedocstore provides an implementation of the docstore API for Google Cloud Firestore. |
docstore/internal/fields
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity.
|
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity. |
docstore/memdocstore
Package memdocstore provides an in-memory implementation of the docstore API.
|
Package memdocstore provides an in-memory implementation of the docstore API. |
docstore/mongodocstore
Package mongodocstore provides an implementation of the docstore API for MongoDB.
|
Package mongodocstore provides an implementation of the docstore API for MongoDB. |
escape
Package escape includes helpers for escaping and unescaping strings.
|
Package escape includes helpers for escaping and unescaping strings. |
gcerr
Package gcerr provides an error type for Go CDK APIs.
|
Package gcerr provides an error type for Go CDK APIs. |
oc
Package oc supports OpenCensus tracing and metrics for the Go Cloud Development Kit.
|
Package oc supports OpenCensus tracing and metrics for the Go Cloud Development Kit. |
openurl
Package openurl provides helpers for URLMux and URLOpeners in portable APIs.
|
Package openurl provides helpers for URLMux and URLOpeners in portable APIs. |
retry
Package retry provides retry logic.
|
Package retry provides retry logic. |
testing
Helper tool for creating new releases of the Go CDK.
|
Helper tool for creating new releases of the Go CDK. |
testing/octest
Package octest supports testing of OpenCensus integrations.
|
Package octest supports testing of OpenCensus integrations. |
testing/terraform
Package terraform provides a function to read Terraform output.
|
Package terraform provides a function to read Terraform output. |
testing/test-summary
Summarizes the output of go test.
|
Summarizes the output of go test. |
trace
Package trace provides support for OpenCensus tracing.
|
Package trace provides support for OpenCensus tracing. |
useragent
Package useragent includes constants and utilitiesfor setting the User-Agent for Go CDK connections to GCP.
|
Package useragent includes constants and utilitiesfor setting the User-Agent for Go CDK connections to GCP. |
cmd/gocdk
Module
|
|
contributebot
Module
|
|
Package mysql provides functions to open MySQL databases with OpenCensus instrumentation.
|
Package mysql provides functions to open MySQL databases with OpenCensus instrumentation. |
azuremysql
Package azuremysql provides connections to Azure Database for MySQL.
|
Package azuremysql provides connections to Azure Database for MySQL. |
cloudmysql
Package cloudmysql provides connections to managed MySQL Cloud SQL instances.
|
Package cloudmysql provides connections to managed MySQL Cloud SQL instances. |
rdsmysql
Package rdsmysql provides connections to AWS RDS MySQL instances.
|
Package rdsmysql provides connections to AWS RDS MySQL instances. |
Package postgres provides functions to open PostgreSQL databases with OpenCensus instrumentation.
|
Package postgres provides functions to open PostgreSQL databases with OpenCensus instrumentation. |
cloudpostgres
Package cloudpostgres provides connections to managed PostgreSQL Cloud SQL instances.
|
Package cloudpostgres provides connections to managed PostgreSQL Cloud SQL instances. |
rdspostgres
Package rdspostgres provides connections to AWS RDS PostgreSQL instances.
|
Package rdspostgres provides connections to AWS RDS PostgreSQL instances. |
Package pubsub provides an easy and portable way to interact with publish/ subscribe systems.
|
Package pubsub provides an easy and portable way to interact with publish/ subscribe systems. |
awssnssqs
Package 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).
|
Package 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). |
azuresb
Package azuresb provides an implementation of pubsub using Azure Service Bus Topic and Subscription.
|
Package azuresb provides an implementation of pubsub using Azure Service Bus Topic and Subscription. |
driver
Package driver defines a set of interfaces that the pubsub package uses to interact with the underlying pubsub services.
|
Package driver defines a set of interfaces that the pubsub package uses to interact with the underlying pubsub services. |
drivertest
Package drivertest provides a conformance test for implementations of driver.
|
Package drivertest provides a conformance test for implementations of driver. |
gcppubsub
Package gcppubsub provides a pubsub implementation that uses GCP PubSub.
|
Package gcppubsub provides a pubsub implementation that uses GCP PubSub. |
kafkapubsub
Package kafkapubsub provides an implementation of pubsub for Kafka.
|
Package kafkapubsub provides an implementation of pubsub for Kafka. |
mempubsub
Package mempubsub provides an in-memory pubsub implementation.
|
Package mempubsub provides an in-memory pubsub implementation. |
natspubsub
Package natspubsub provides a pubsub implementation for NATS.io.
|
Package natspubsub provides a pubsub implementation for NATS.io. |
rabbitpubsub
Package rabbitpubsub provides an pubsub implementation for RabbitMQ.
|
Package rabbitpubsub provides an pubsub implementation for RabbitMQ. |
Package requestlog provides an http.Handler that logs information about requests.
|
Package requestlog provides an http.Handler that logs information about requests. |
Package runtimevar provides an easy and portable way to watch runtime configuration variables.
|
Package runtimevar provides an easy and portable way to watch runtime configuration variables. |
awsparamstore
Package 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.
|
Package 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. |
blobvar
Package blobvar provides a runtimevar implementation with variables read from a blob.Bucket.
|
Package blobvar provides a runtimevar implementation with variables read from a blob.Bucket. |
constantvar
Package constantvar provides a runtimevar implementation with Variables that never change.
|
Package constantvar provides a runtimevar implementation with Variables that never change. |
driver
Package driver provides the interface for providers of runtimevar.
|
Package driver provides the interface for providers of runtimevar. |
drivertest
Package drivertest provides a conformance test for implementations of runtimevar.
|
Package drivertest provides a conformance test for implementations of runtimevar. |
etcdvar
Package etcdvar provides a runtimevar implementation with variables backed by etcd.
|
Package etcdvar provides a runtimevar implementation with variables backed by etcd. |
filevar
Package filevar provides a runtimevar implementation with variables backed by the filesystem.
|
Package filevar provides a runtimevar implementation with variables backed by the filesystem. |
gcpruntimeconfig
Package gcpruntimeconfig provides a runtimevar implementation with variables read from GCP Cloud Runtime Configurator (https://cloud.google.com/deployment-manager/runtime-configurator).
|
Package gcpruntimeconfig provides a runtimevar implementation with variables read from GCP Cloud Runtime Configurator (https://cloud.google.com/deployment-manager/runtime-configurator). |
httpvar
Package httpvar provides a runtimevar implementation with variables backed by http endpoint.
|
Package httpvar provides a runtimevar implementation with variables backed by http endpoint. |
Package secrets provides an easy and portable way to encrypt and decrypt messages.
|
Package secrets provides an easy and portable way to encrypt and decrypt messages. |
awskms
Package awskms provides a secrets implementation backed by AWS KMS.
|
Package awskms provides a secrets implementation backed by AWS KMS. |
azurekeyvault
Package azurekeyvault provides a secrets implementation backed by Azure KeyVault.
|
Package azurekeyvault provides a secrets implementation backed by Azure KeyVault. |
driver
Package driver defines interfaces to be implemented for providers of the secrets package.
|
Package driver defines interfaces to be implemented for providers of the secrets package. |
drivertest
Package drivertest provides a conformance test for implementations of the secrets driver.
|
Package drivertest provides a conformance test for implementations of the secrets driver. |
gcpkms
Package gcpkms provides a secrets implementation backed by Google Cloud KMS.
|
Package gcpkms provides a secrets implementation backed by Google Cloud KMS. |
localsecrets
Package localsecrets provides a secrets implementation using a locally locally provided symmetric key.
|
Package localsecrets provides a secrets implementation using a locally locally provided symmetric key. |
vault
Package vault provides a secrets implementation using the Transit Secrets Engine of Vault by Hashicorp.
|
Package vault provides a secrets implementation using the Transit Secrets Engine of Vault by Hashicorp. |
hashivault
Module
|
|
Package server provides a preconfigured HTTP server with diagnostic hooks.
|
Package server provides a preconfigured HTTP server with diagnostic hooks. |
driver
Package driver defines an interface for custom HTTP listeners.
|
Package driver defines an interface for custom HTTP listeners. |
sdserver
Package sdserver provides the diagnostic hooks for a server using Stackdriver.
|
Package sdserver provides the diagnostic hooks for a server using Stackdriver. |
xrayserver
Package xrayserver provides the diagnostic hooks for a server using AWS X-Ray.
|
Package xrayserver provides the diagnostic hooks for a server using AWS X-Ray. |
tests
|
|
gcp/app
The app command is a test app that is initialized with the GCP SDK.
|
The app command is a test app that is initialized with the GCP SDK. |
internal/testutil
Package testutil contains utility functions used by server tests against different platforms.
|
Package testutil contains utility functions used by server tests against different platforms. |