github.com/cornelk/go-cloud@v0.17.1/README.md (about)

     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  
    14  The Go Cloud Development Kit (Go CDK) allows Go application developers to
    15  seamlessly deploy cloud applications on any combination of cloud providers. It
    16  does this by providing stable, idiomatic interfaces for common uses like storage
    17  and databases. Think `database/sql` for cloud products.
    18  
    19  Imagine writing this to read from blob storage (like Google Cloud Storage or
    20  S3):
    21  
    22  ```go
    23  ctx := context.Background()
    24  bucket, err := blob.OpenBucket(ctx, "s3://my-bucket")
    25  if err != nil {
    26      return err
    27  }
    28  defer bucket.Close()
    29  blobReader, err := bucket.NewReader(ctx, "my-blob", nil)
    30  if err != nil {
    31      return err
    32  }
    33  ```
    34  
    35  and being able to run that code on any cloud you want, avoiding all the ceremony
    36  of cloud-specific authorization, tracing, SDKs and all the other code required
    37  to make an application portable across cloud platforms.
    38  
    39  The project works well with a code generator called
    40  [Wire](https://github.com/google/wire/blob/master/README.md). It creates
    41  human-readable code that only imports the cloud SDKs for services you use. This
    42  allows the Go CDK to grow to support any number of cloud services, without
    43  increasing compile times or binary sizes, and avoiding any side effects from
    44  `init()` functions.
    45  
    46  You can learn more about the project from our [announcement blog post][], or our
    47  talk 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.
    61  go get gocloud.dev
    62  ```
    63  
    64  The Go CDK builds at the latest stable release of Go. Previous Go versions may
    65  compile but are not supported.
    66  
    67  ## Documentation
    68  
    69  Documentation for the project lives primarily on https://gocloud.dev/, including
    70  [tutorials][].
    71  
    72  You can also browse Go package reference on [godoc.org][godoc].
    73  
    74  [tutorials]: https://gocloud.dev/tutorials/
    75  
    76  ## Project status
    77  
    78  The APIs are still in alpha, but we think they are production-ready and are
    79  actively looking for feedback from early adopters. If you have comments or
    80  questions, you can post to the [go-cloud mailing list][] or email us at
    81  go-cdk-feedback@google.com.
    82  
    83  ## Current features
    84  
    85  The 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  
    96  Thank you for your interest in contributing to the Go Cloud Development
    97  Kit! :heart:
    98  
    99  Everyone is welcome to contribute, whether it's in the form of code,
   100  documentation, bug reports, feature requests, or anything else. We encourage you
   101  to experiment with the Go CDK and make contributions to help evolve it to meet
   102  your needs!
   103  
   104  The GitHub repository at [google/go-cloud][go-cloud] contains some driver
   105  implementations for each portable API. We intend to include
   106  [Google Cloud Platform][gcp], [Amazon Web Services][aws], and [Azure][azure]
   107  implementations, as well as prominent open source services and at least one
   108  implementation suitable for use in local testing. Unfortunately, we cannot
   109  support every service directly from the project; however, we encourage
   110  contributions in separate repositories.
   111  
   112  If you create a repository that implements the Go CDK interfaces for other
   113  services, let us know! We would be happy to link to it here and give you a
   114  heads-up before making any breaking changes.
   115  
   116  See [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  
   125  You can contact us on the [go-cloud mailing list][].
   126  
   127  This 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  
   134  The Go CDK is open-source and released under an [Apache 2.0
   135  License](https://github.com/google/go-cloud/blob/master/LICENSE). Copyright ©
   136  2018–2019 The Go Cloud Development Kit Authors.
   137  
   138  If you are looking for the website of GoCloud Systems, which is unrelated to the
   139  Go CDK, visit https://gocloud.systems.