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

..03-May-2022-

.github/H09-Dec-2020-

.vscode/H09-Dec-2020-

aws/H09-Dec-2020-

azure/H09-Dec-2020-

blob/H09-Dec-2020-

docstore/H09-Dec-2020-

gcerrors/H09-Dec-2020-

gcp/H09-Dec-2020-

internal/H09-Dec-2020-

mysql/H09-Dec-2020-

postgres/H09-Dec-2020-

pubsub/H09-Dec-2020-

runtimevar/H09-Dec-2020-

samples/H09-Dec-2020-

secrets/H09-Dec-2020-

server/H09-Dec-2020-

wire/H09-Dec-2020-

.codecov.ymlH A D09-Dec-2020196

.gitattributesH A D09-Dec-2020160

.gitignoreH A D09-Dec-20201.4 KiB

.travis.ymlH A D09-Dec-20202 KiB

AUTHORSH A D09-Dec-2020931

CODE_OF_CONDUCT.mdH A D09-Dec-2020335

CONTRIBUTING.mdH A D09-Dec-202011 KiB

CONTRIBUTORSH A D09-Dec-20202.1 KiB

LICENSEH A D09-Dec-202011.1 KiB

README.mdH A D09-Dec-20205 KiB

allmodulesH A D09-Dec-2020907

doc.goH A D09-Dec-20202 KiB

go.modH A D09-Dec-20202.8 KiB

go.sumH A D09-Dec-202066.4 KiB

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