{"id":13416691,"url":"https://github.com/google/go-cloud","last_synced_at":"2025-09-09T21:19:16.507Z","repository":{"id":37381950,"uuid":"126250425","full_name":"google/go-cloud","owner":"google","description":"The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.","archived":false,"fork":false,"pushed_at":"2025-04-15T22:44:03.000Z","size":43786,"stargazers_count":9678,"open_issues_count":20,"forks_count":818,"subscribers_count":217,"default_branch":"master","last_synced_at":"2025-05-08T14:03:28.592Z","etag":null,"topics":["aws","azure","cloud","gcp","go","golang","hybrid-cloud","multi-cloud","portable","server"],"latest_commit_sha":null,"homepage":"https://gocloud.dev/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-21T22:57:26.000Z","updated_at":"2025-05-07T05:28:52.000Z","dependencies_parsed_at":"2024-01-14T08:42:05.134Z","dependency_job_id":"4ff6ffa0-927c-440e-a30f-2ad713eb0710","html_url":"https://github.com/google/go-cloud","commit_stats":{"total_commits":2032,"total_committers":152,"mean_commits":"13.368421052631579","dds":0.5679133858267716,"last_synced_commit":"47ba1acb85065500d7630ecf8ffea4c09dbe0b89"},"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fgo-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fgo-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fgo-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fgo-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/go-cloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253343839,"owners_count":21893863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","cloud","gcp","go","golang","hybrid-cloud","multi-cloud","portable","server"],"created_at":"2024-07-30T22:00:20.036Z","updated_at":"2025-05-12T03:40:44.269Z","avatar_url":"https://github.com/google.png","language":"Go","readme":"# The Go Cloud Development Kit (Go CDK)\n\n_Write once, run on any cloud ☁️_\n\n[![Build Status](https://github.com/google/go-cloud/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/google/go-cloud/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/google/go-cloud)](https://goreportcard.com/report/github.com/google/go-cloud)\n[![PkgGoDev](https://pkg.go.dev/badge/mod/gocloud.dev)][PkgGoDev]\n[![Coverage](https://codecov.io/gh/google/go-cloud/branch/master/graph/badge.svg)](https://codecov.io/gh/google/go-cloud)\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/google/go-cloud)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"509\" height=\"276\" src=\"internal/website/static/go-cdk-logo-gopherblue.png\" alt=\"\"\u003e\n\u003c/p\u003e\n\nThe Go Cloud Development Kit (Go CDK) allows Go application developers to\nseamlessly deploy cloud applications on any combination of cloud providers. It\ndoes this by providing stable, idiomatic interfaces for common uses like storage\nand databases. Think `database/sql` for cloud products.\n\nImagine writing this to read from blob storage (like Google Cloud Storage or\nS3):\n\n```go\nctx := context.Background()\nbucket, err := blob.OpenBucket(ctx, \"s3://my-bucket\")\nif err != nil {\n    return err\n}\ndefer bucket.Close()\nblobReader, err := bucket.NewReader(ctx, \"my-blob\", nil)\nif err != nil {\n    return err\n}\n```\n\nand being able to run that code on any cloud you want, avoiding all the ceremony\nof cloud-specific authorization, tracing, SDKs and all the other code required\nto make an application portable across cloud platforms.\n\nThe project works well with a code generator called\n[Wire](https://github.com/google/wire/blob/master/README.md). It creates\nhuman-readable code that only imports the cloud SDKs for services you use. This\nallows the Go CDK to grow to support any number of cloud services, without\nincreasing compile times or binary sizes, and avoiding any side effects from\n`init()` functions.\n\nYou can learn more about the project from our [announcement blog post][], or our\ntalk at Next 2018:\n\n[![Video: Building Go Applications for the Open Cloud (Cloud Next '18)](https://img.youtube.com/vi/_2ZwhvIkgek/0.jpg)][video]\n\n[announcement blog post]: https://blog.golang.org/go-cloud\n[PkgGoDev]: https://pkg.go.dev/mod/gocloud.dev\n[travis]: https://travis-ci.com/google/go-cloud\n[video]: https://www.youtube.com/watch?v=_2ZwhvIkgek\n\n## Installation\n\n```shell\n# First \"cd\" into your project directory if you have one to ensure \"go get\" uses\n# Go modules (or not) appropriately. See \"go help modules\" for more info.\ngo get gocloud.dev\n```\n\nThe Go CDK builds at the latest stable release of Go. Previous Go versions may\ncompile but are not supported.\n\n## Documentation\n\nDocumentation for the project lives primarily on https://gocloud.dev/, including\n[tutorials][].\n\nYou can also browse Go package reference on [pkg.go.dev][PkgGoDev].\n\n[tutorials]: https://gocloud.dev/tutorials/\n\n## Project status\n\nThe APIs are still in alpha, but we think they are production-ready and are\nactively looking for feedback from early adopters. If you have comments or\nquestions please open an issue.\n\nAt this time we prefer to focus on maintaining the existing APIs and drivers,\nand are unlikely to accept new ones into the `go-cloud` repository. The modular\nnature of the Go CDK makes it simple to host new APIs and drivers for existing\nAPIs externally, in separate repositories.\n\nIf you have a new API or driver that you believe are important and mature enough\nto be included, feel free to open an issue to discuss this; our default will\nlikely be to suggest starting in a separate repository. We'll also be happy\nto maintain a list of such external APIs and drivers in this README.\n\n## Current features\n\nThe Go CDK provides generic APIs for:\n\n*   Unstructured binary (blob) storage\n*   Publish/Subscribe (pubsub)\n*   Variables that change at runtime (runtimevar)\n*   Connecting to MySQL (including MariaDB) and PostgreSQL databases (mysql, postgres)\n*   Server startup and diagnostics: request logging, tracing, and health\n    checking (server)\n\n## Contributing\n\nThank you for your interest in contributing to the Go Cloud Development\nKit! :heart:\n\nEveryone is welcome to contribute, whether it's in the form of code,\ndocumentation, bug reports, feature requests, or anything else. We encourage you\nto experiment with the Go CDK and make contributions to help evolve it to meet\nyour needs!\n\nThe GitHub repository at [google/go-cloud][go-cloud] contains some driver\nimplementations for each portable API. We intend to include\n[Google Cloud Platform][gcp], [Amazon Web Services][aws], and [Azure][azure]\nimplementations, as well as prominent open source services and at least one\nimplementation suitable for use in local testing. Unfortunately, we cannot\nsupport every service directly from the project; however, we encourage\ncontributions in separate repositories.\n\nIf you create a repository that implements the Go CDK interfaces for other\nservices, let us know! We would be happy to link to it here and give you a\nheads-up before making any breaking changes.\n\nSee [the contributing guide](./CONTRIBUTING.md) for more details.\n\n[go-cloud]: https://github.com/google/go-cloud\n[gcp]: http://cloud.google.com\n[aws]: http://aws.amazon.com\n[azure]: https://azure.microsoft.com/\n\n## Community\n\nThis project is covered by the Go [Code of Conduct][].\n\n[Code of Conduct]: ./CODE_OF_CONDUCT.md\n\n## Legal disclaimer\n\nThe Go CDK is open-source and released under an [Apache 2.0\nLicense](https://github.com/google/go-cloud/blob/master/LICENSE). Copyright ©\n2018–2019 The Go Cloud Development Kit Authors.\n\nIf you are looking for the website of GoCloud Systems, which is unrelated to the\nGo CDK, visit https://gocloud.systems.\n","funding_links":[],"categories":["Popular","Go","Library","其他__大数据","Frameworks","Repositories"],"sub_categories":["网络服务_其他","Web backend"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fgo-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fgo-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fgo-cloud/lists"}