• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H10-Jun-2020-

.vscode/H10-Jun-2020-

aws/H10-Jun-2020-

azure/H10-Jun-2020-

blob/H10-Jun-2020-

docstore/H10-Jun-2020-

gcerrors/H10-Jun-2020-

gcp/H10-Jun-2020-

internal/H10-Jun-2020-

mysql/H10-Jun-2020-

postgres/H10-Jun-2020-

pubsub/H10-Jun-2020-

runtimevar/H10-Jun-2020-

samples/H10-Jun-2020-

secrets/H10-Jun-2020-

server/H10-Jun-2020-

wire/H10-Jun-2020-

.codecov.ymlH A D10-Jun-2020196

.gitattributesH A D10-Jun-2020160

.gitignoreH A D10-Jun-20201.4 KiB

.travis.ymlH A D10-Jun-20202.4 KiB

AUTHORSH A D10-Jun-2020931

CODE_OF_CONDUCT.mdH A D10-Jun-2020335

CONTRIBUTING.mdH A D10-Jun-202011 KiB

CONTRIBUTORSH A D10-Jun-20202.1 KiB

LICENSEH A D10-Jun-202011.1 KiB

README.mdH A D10-Jun-20205.1 KiB

allmodulesH A D10-Jun-2020938

doc.goH A D10-Jun-20202 KiB

go.modH A D10-Jun-20202.5 KiB

go.sumH A D10-Jun-202051.6 KiB

gocloud.code-workspaceH A D10-Jun-20201.6 KiB

README.md

1# The Go Cloud Development Kit (Go CDK)
2
3_Write once, run on any cloud ☁️_
4
5[![Build Status](https://travis-ci.com/google/go-cloud.svg?branch=master)][travis]
6[![godoc](https://godoc.org/github.com/google/go-cloud?status.svg)][godoc]
7[![Coverage](https://codecov.io/gh/google/go-cloud/branch/master/graph/badge.svg)](https://codecov.io/gh/google/go-cloud)
8[![Go Report Card](https://goreportcard.com/badge/github.com/google/go-cloud)](https://goreportcard.com/report/github.com/google/go-cloud)
9
10<p align="center">
11  <img width="509" height="276" src="internal/website/static/go-cdk-logo-gopherblue.png" alt="">
12</p>
13
14The Go Cloud Development Kit (Go CDK) allows Go application developers to
15seamlessly deploy cloud applications on any combination of cloud providers. It
16does this by providing stable, idiomatic interfaces for common uses like storage
17and databases. Think `database/sql` for cloud products.
18
19Imagine writing this to read from blob storage (like Google Cloud Storage or
20S3):
21
22```go
23ctx := context.Background()
24bucket, err := blob.OpenBucket(ctx, "s3://my-bucket")
25if err != nil {
26    return err
27}
28defer bucket.Close()
29blobReader, err := bucket.NewReader(ctx, "my-blob", nil)
30if err != nil {
31    return err
32}
33```
34
35and being able to run that code on any cloud you want, avoiding all the ceremony
36of cloud-specific authorization, tracing, SDKs and all the other code required
37to make an application portable across cloud platforms.
38
39The project works well with a code generator called
40[Wire](https://github.com/google/wire/blob/master/README.md). It creates
41human-readable code that only imports the cloud SDKs for services you use. This
42allows the Go CDK to grow to support any number of cloud services, without
43increasing compile times or binary sizes, and avoiding any side effects from
44`init()` functions.
45
46You can learn more about the project from our [announcement blog post][], or our
47talk at Next 2018:
48
49[![Video: Building Go Applications for the Open Cloud (Cloud Next '18)](https://img.youtube.com/vi/_2ZwhvIkgek/0.jpg)][video]
50
51[announcement blog post]: https://blog.golang.org/go-cloud
52[godoc]: https://godoc.org/github.com/google/go-cloud
53[travis]: https://travis-ci.com/google/go-cloud
54[video]: https://www.youtube.com/watch?v=_2ZwhvIkgek
55
56## Installation
57
58```shell
59# First "cd" into your project directory if you have one to ensure "go get" uses
60# Go modules (or not) appropriately. See "go help modules" for more info.
61go get gocloud.dev
62```
63
64The Go CDK builds at the latest stable release of Go. Previous Go versions may
65compile but are not supported.
66
67## Documentation
68
69Documentation for the project lives primarily on https://gocloud.dev/, including
70[tutorials][].
71
72You can also browse Go package reference on [godoc.org][godoc].
73
74[tutorials]: https://gocloud.dev/tutorials/
75
76## Project status
77
78The APIs are still in alpha, but we think they are production-ready and are
79actively looking for feedback from early adopters. If you have comments or
80questions, you can post to the [go-cloud mailing list][] or email us at
81go-cdk-feedback@google.com.
82
83## Current features
84
85The Go CDK provides generic APIs for:
86
87*   Unstructured binary (blob) storage
88*   Publish/Subscribe (pubsub)
89*   Variables that change at runtime (runtimevar)
90*   Connecting to MySQL and PostgreSQL databases (mysql, postgres)
91*   Server startup and diagnostics: request logging, tracing, and health
92    checking (server)
93
94## Contributing
95
96Thank you for your interest in contributing to the Go Cloud Development
97Kit! :heart:
98
99Everyone is welcome to contribute, whether it's in the form of code,
100documentation, bug reports, feature requests, or anything else. We encourage you
101to experiment with the Go CDK and make contributions to help evolve it to meet
102your needs!
103
104The GitHub repository at [google/go-cloud][go-cloud] contains some driver
105implementations for each portable API. We intend to include
106[Google Cloud Platform][gcp], [Amazon Web Services][aws], and [Azure][azure]
107implementations, as well as prominent open source services and at least one
108implementation suitable for use in local testing. Unfortunately, we cannot
109support every service directly from the project; however, we encourage
110contributions in separate repositories.
111
112If you create a repository that implements the Go CDK interfaces for other
113services, let us know! We would be happy to link to it here and give you a
114heads-up before making any breaking changes.
115
116See [the contributing guide](./CONTRIBUTING.md) for more details.
117
118[go-cloud]: https://github.com/google/go-cloud
119[gcp]: http://cloud.google.com
120[aws]: http://aws.amazon.com
121[azure]: https://azure.microsoft.com/
122
123## Community
124
125You can contact us on the [go-cloud mailing list][].
126
127This project is covered by the Go [Code of Conduct][].
128
129[Code of Conduct]: ./CODE_OF_CONDUCT.md
130[go-cloud mailing list]: https://groups.google.com/forum/#!forum/go-cloud
131
132## Legal disclaimer
133
134The Go CDK is open-source and released under an [Apache 2.0
135License](https://github.com/google/go-cloud/blob/master/LICENSE). Copyright ©
1362018–2019 The Go Cloud Development Kit Authors.
137
138If you are looking for the website of GoCloud Systems, which is unrelated to the
139Go CDK, visit https://gocloud.systems.
140