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/
See https://gocloud.dev/concepts/urls/ for a discussion of URLs in the Go CDK.
See https://gocloud.dev/concepts/as/ for a discussion of how to write service-specific code with the Go CDK.
Path | Synopsis |
---|---|
aws | Package aws provides fundamental Wire providers for Amazon Web Services (AWS). |
aws/awscloud | Package awscloud contains Wire providers for AWS services. |
aws/rds | Package rds contains Wire providers that are common across RDS. |
azure/azurecloud | Package azurecloud contains Wire providers for Azure services. |
azure/azuredb | Package azuredb contains Wire providers that are common across Azure Database. |
blob | Package blob provides an easy and portable way to interact with blobs within a storage location. |
blob/azureblob | Package azureblob provides a blob implementation that uses Azure Storage’s BlockBlob. |
blob/driver | Package driver defines interfaces to be implemented by blob drivers, which will be used by the blob package to interact with the underlying services. |
blob/drivertest | Package drivertest provides a conformance test for implementations of driver. |
blob/fileblob | |
blob/gcsblob | Package gcsblob provides a blob implementation that uses GCS. |
blob/memblob | Package memblob provides an in-memory blob implementation. |
blob/s3blob | Package s3blob provides a blob implementation that uses S3. |
docstore | Package docstore provides a portable way of interacting with a document store. |
docstore/awsdynamodb | Package awsdynamodb provides a docstore implementation backed by Amazon DynamoDB. |
docstore/driver | Package driver defines interfaces to be implemented by docstore drivers, which will be used by the docstore package to interact with the underlying services. |
docstore/drivertest | Package drivertest provides a conformance test for implementations of driver. |
docstore/gcpfirestore | Package gcpfirestore provides a docstore implementation backed by 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. |
docstore/memdocstore | Package memdocstore provides an in-process in-memory implementation of the docstore API. |
docstore/mongodocstore | Package mongodocstore provides a docstore implementation for MongoDB and MongoDB-compatible services hosted on-premise or by cloud providers, including Amazon DocumentDB and Azure Cosmos DB. |
gcerrors | Package gcerrors provides support for getting error codes from errors returned by Go CDK APIs. |
gcp | Package gcp provides fundamental Wire providers and types for Google Cloud Platform (GCP). |
gcp/cloudsql | Package cloudsql contains Wire providers that are common across Google Cloud SQL. |
gcp/gcpcloud | Package gcpcloud contains Wire providers for GCP services. |
internal/escape | Package escape includes helpers for escaping and unescaping strings. |
internal/gcerr | Package gcerr provides an error type for Go CDK APIs. |
internal/oc | Package oc supports OpenCensus tracing and metrics for the Go Cloud Development Kit. |
internal/openurl | Package openurl provides helpers for URLMux and URLOpeners in portable APIs. |
internal/retry | Package retry provides retry logic. |
internal/testing/octest | Package octest supports testing of OpenCensus integrations. |
internal/testing/setup | |
internal/testing/terraform | Package terraform provides a function to read Terraform output. |
internal/testing/test-summary | Summarizes the output of go test. |
internal/trace | Package trace provides support for OpenCensus tracing. |
internal/useragent | Package useragent includes constants and utilitiesfor setting the User-Agent for Go CDK connections to GCP. |
internal/website/gatherexamples | Command gatherexamples extracts examples in a Go module into a JSON-formatted object. |
mysql | Package mysql provides functions to open MySQL databases with OpenCensus instrumentation. |
mysql/awsmysql | Package awsmysql provides connections to AWS RDS MySQL instances. |
mysql/azuremysql | Package azuremysql provides connections to Azure Database for MySQL. |
mysql/gcpmysql | Package gcpmysql provides connections to managed MySQL Cloud SQL instances. |
postgres | Package postgres provides functions to open PostgreSQL databases with OpenCensus instrumentation. |
postgres/awspostgres | Package awspostgres provides connections to AWS RDS PostgreSQL instances. |
postgres/gcppostgres | Package gcppostgres provides connections to managed PostgreSQL Cloud SQL instances. |
pubsub | Package pubsub provides an easy and portable way to interact with publish/subscribe systems. |
pubsub/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). |
pubsub/azuresb | Package azuresb provides an implementation of pubsub using Azure Service Bus Topic and Subscription. |
pubsub/batcher | Package batcher supports batching of items. |
pubsub/driver | Package driver defines interfaces to be implemented by pubsub drivers, which will be used by the pubsub package to interact with the underlying services. |
pubsub/drivertest | Package drivertest provides a conformance test for implementations of driver. |
pubsub/gcppubsub | Package gcppubsub provides a pubsub implementation that uses GCP PubSub. |
pubsub/kafkapubsub | Package kafkapubsub provides an implementation of pubsub for Kafka. |
pubsub/mempubsub | Package mempubsub provides an in-memory pubsub implementation. |
pubsub/natspubsub | Package natspubsub provides a pubsub implementation for NATS.io. |
pubsub/rabbitpubsub | Package rabbitpubsub provides an pubsub implementation for RabbitMQ. |
runtimevar | Package runtimevar provides an easy and portable way to watch runtime configuration variables. |
runtimevar/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. |
runtimevar/awssecretsmanager | Package 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/blobvar | Package blobvar provides a runtimevar implementation with variables read from a blob.Bucket. |
runtimevar/constantvar | Package constantvar provides a runtimevar implementation with Variables that never change. |
runtimevar/driver | Package driver defines interfaces to be implemented by runtimevar drivers, which will be used by the runtimevar package to interact with the underlying services. |
runtimevar/drivertest | Package drivertest provides a conformance test for implementations of runtimevar. |
runtimevar/etcdvar | Package etcdvar provides a runtimevar implementation with variables backed by etcd. |
runtimevar/filevar | Package filevar provides a runtimevar implementation with variables backed by the filesystem. |
runtimevar/gcpruntimeconfig | Package gcpruntimeconfig provides a runtimevar implementation with variables read from GCP Cloud Runtime Configurator (https://cloud.google.com/deployment-manager/runtime-configurator). |
runtimevar/gcpsecretmanager | Package gcpsecretmanager provides a runtimevar implementation with secrets read from GCP Secret Manager (https://cloud.google.com/secret-manager). |
runtimevar/httpvar | Package httpvar provides a runtimevar implementation with variables backed by http endpoint. |
samples/gocdk-blob | gocdk-blob demonstrates the use of the Go CDK blob package in a simple command-line application. |
samples/gocdk-pubsub | gocdk-pubsub demonstrates the use of the Go CDK pubsub package in a simple command-line application. |
samples/gocdk-runtimevar | gocdk-runtimevar demonstrates the use of the Go CDK runtimevar package in a simple command-line application. |
samples/gocdk-secrets | gocdk-secrets demonstrates the use of the Go CDK secrets package in a simple command-line application. |
samples/guestbook | guestbook is a sample application that records visitors' messages, displays a cloud banner, and an administrative message. |
samples/guestbook/aws/provision_db | The provision_db program connects to an RDS database and initializes it with SQL from stdin. |
samples/guestbook/gcp/deploy | The deploy program builds the Guestbook server locally and deploys it to GKE. |
samples/guestbook/gcp/provision_db | The provision_db program connects to a Cloud SQL database and initializes it with SQL from a file. |
samples/guestbook/localdb | |
samples/order | This application processes orders for converting images to PNG format. |
samples/server | Command server runs a simple HTTP server with integrated Stackdriver tracing and health checks. |
samples/tutorial | Command upload saves files to blob storage on GCP, AWS, and Azure. |
secrets | Package secrets provides an easy and portable way to encrypt and decrypt messages. |
secrets/awskms | Package awskms provides a secrets implementation backed by AWS KMS. |
secrets/azurekeyvault | Package azurekeyvault provides a secrets implementation backed by Azure KeyVault. |
secrets/driver | Package driver defines interfaces to be implemented by secrets drivers, which will be used by the secrets package to interact with the underlying services. |
secrets/drivertest | Package drivertest provides a conformance test for implementations of the secrets driver. |
secrets/gcpkms | Package gcpkms provides a secrets implementation backed by Google Cloud KMS. |
secrets/hashivault | Package hashivault provides a secrets implementation using the Transit Secrets Engine of Vault by Hashicorp. |
secrets/localsecrets | Package localsecrets provides a secrets implementation using a locally provided symmetric key. |
server | Package server provides a preconfigured HTTP server with diagnostic hooks. |
server/driver | Package driver defines an interface for custom HTTP listeners. |
server/health | Package health provides health check handlers. |
server/health/sqlhealth | Package sqlhealth provides a health check for a SQL database connection. |
server/requestlog | Package requestlog provides an http.Handler that logs information about requests. |
server/sdserver | Package sdserver provides the diagnostic hooks for a server using Stackdriver. |
server/xrayserver | Package xrayserver provides the diagnostic hooks for a server using AWS X-Ray. |
Updated 2021-01-23. Refresh now. Tools for package owners.