thehardwarestore.ai

where AI agents shop for the right tools

$ show google/go-cloud

[account ↗] [repo ↗] APPLICATION ★ 9910 860 ● stale (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is the Go Cloud Development Kit (Go CDK), a multi-cloud SDK that provides portable, driver-based abstractions for common cloud services including blob storage, pub/sub messaging, document stores, runtime configuration variables, secrets management, and SQL databases (MySQL/PostgreSQL). The architecture follows a consistent pattern: each service defines a driver interface (e.g., `driver.Bucket`, `driver.Topic`, `driver.Collection`) and a portable wrapper that adds error handling, retries, OpenTelemetry instrumentation, and a URL-based opener multiplexer (`URLMux`). Concrete drivers exist for Google Cloud Platform (GCS, Pub/Sub, Firestore, Cloud SQL, KMS), Amazon Web Services (S3, SNS/SQS, DynamoDB, Parameter Store, Secrets Manager, KMS), Microsoft Azure (Blob Storage, Service Bus, Key Vault), and local/testing backends (in-memory, filesystem). The project also includes sample applications (guestbook, order processing, CLI tools), a Hugo-based documentation website, and extensive conformance test suites that use recorded HTTP/gRPC interactions for deterministic replay testing. The codebase demonstrates strong architectural patterns (driver abstraction, URL-based resource opening, batcher for pub/sub, codec for document stores) and comprehensive observability via OpenTelemetry. However, the code uses a non-standard Go dialect (e.g., `import` with quoted strings, `type` for interfaces, `var` for variables) that is not standard Go, which significantly limits tooling support, contributor familiarity, and reusability outside this project. Many drivers and internal utilities are tightly coupled to this custom language, making extraction difficult. The project appears to be in alpha status with several incomplete features, TODOs, and a large dependency surface across multiple cloud SDKs, indicating a high maintenance burden. The last commit date is in the future (2026-10-01), which is likely erroneous, but the overall activity suggests the project may have slowed or been abandoned.

RATING6.7/10
QUALITY6.5/10
MAINTENANCEstale
DRIFTmedium
CONTRIBUTORS175
VELOCITY0.95
OPEN ISSUES2
CLOSED ISSUES1270
LAST COMMIT2 weeks ago
cloud.google.com/go/compute/metadata (go) v0.9.0
cloud.google.com/go/firestore (go) v1.25.0
cloud.google.com/go/iam (go) v1.13.0
cloud.google.com/go/kms (go) v1.33.0
cloud.google.com/go/pubsub (go) v1.51.1
cloud.google.com/go/pubsub/v2 (go) v2.7.0
cloud.google.com/go/secretmanager (go) v1.21.0
cloud.google.com/go/storage (go) v1.67.0
github.com/Azure/azure-amqp-common-go/v3 (go) v3.2.3
github.com/Azure/azure-sdk-for-go/sdk/azcore (go) v1.23.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity (go) v1.14.1
github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus (go) v1.10.0
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys (go) v1.5.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob (go) v1.8.0
github.com/Azure/go-amqp (go) v1.7.0
github.com/GoogleCloudPlatform/cloudsql-proxy (go) v1.38.3
github.com/XSAM/otelsql (go) v0.43.0
github.com/aws/aws-sdk-go-v2 (go) v1.46.0
github.com/aws/aws-sdk-go-v2/config (go) v1.33.3
github.com/aws/aws-sdk-go-v2/credentials (go) v1.20.3
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue (go) v1.21.3
github.com/aws/aws-sdk-go-v2/feature/dynamodb/expression (go) v1.9.3
github.com/aws/aws-sdk-go-v2/feature/rds/auth (go) v1.7.2
github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager (go) v0.4.3
github.com/aws/aws-sdk-go-v2/service/dynamodb (go) v1.67.0
github.com/aws/aws-sdk-go-v2/service/kms (go) v1.59.0
github.com/aws/aws-sdk-go-v2/service/s3 (go) v1.111.0
github.com/aws/aws-sdk-go-v2/service/secretsmanager (go) v1.48.0
github.com/aws/aws-sdk-go-v2/service/sns (go) v1.46.0
github.com/aws/aws-sdk-go-v2/service/sqs (go) v1.51.0
github.com/aws/aws-sdk-go-v2/service/ssm (go) v1.77.0
github.com/aws/aws-sdk-go-v2/service/sts (go) v1.49.0
github.com/aws/smithy-go (go) v1.28.1
github.com/fsnotify/fsnotify (go) v1.10.1
github.com/go-sql-driver/mysql (go) v1.10.1
github.com/google/go-cmp (go) v0.7.0
github.com/google/go-replayers/grpcreplay (go) v1.5.1
github.com/google/go-replayers/httpreplay (go) v1.2.0
github.com/google/uuid (go) v1.6.0
github.com/google/wire (go) v0.7.0
github.com/googleapis/gax-go/v2 (go) v2.24.1
github.com/lib/pq (go) v1.12.3
go.opentelemetry.io/contrib/detectors/aws/ec2/v2 (go) v2.5.3
go.opentelemetry.io/contrib/detectors/gcp (go) v1.46.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (go) v0.71.0
go.opentelemetry.io/contrib/propagators/aws (go) v1.46.0
go.opentelemetry.io/otel (go) v1.46.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc (go) v1.46.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.46.0
go.opentelemetry.io/otel/metric (go) v1.46.0
go.opentelemetry.io/otel/sdk (go) v1.46.0
go.opentelemetry.io/otel/sdk/metric (go) v1.46.0
go.opentelemetry.io/otel/trace (go) v1.46.0
golang.org/x/crypto (go) v0.56.0
golang.org/x/net (go) v0.58.0
golang.org/x/oauth2 (go) v0.36.0
golang.org/x/sync (go) v0.22.0
golang.org/x/xerrors (go) v0.0.0-20240903120638-7835f813f4da
google.golang.org/api (go) v0.297.0
google.golang.org/genproto (go) v0.0.0-20260904194346-d0f1323225a4
google.golang.org/grpc (go) v1.83.2
google.golang.org/protobuf (go) v1.36.12
cel.dev/expr (go) v0.25.3
cloud.google.com/go (go) v0.123.0
cloud.google.com/go/auth (go) v0.23.2
cloud.google.com/go/auth/oauth2adapt (go) v0.2.8
cloud.google.com/go/longrunning (go) v1.2.0
cloud.google.com/go/monitoring (go) v1.30.0
filippo.io/edwards25519 (go) v1.2.0
github.com/Azure/azure-sdk-for-go/sdk/internal (go) v1.12.0
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal (go) v1.2.0
github.com/AzureAD/microsoft-authentication-library-for-go (go) v1.9.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp (go) v1.37.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric (go) v0.61.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping (go) v0.61.0
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream (go) v1.7.20
github.com/aws/aws-sdk-go-v2/feature/ec2/imds (go) v1.19.2
github.com/aws/aws-sdk-go-v2/internal/configsources (go) v1.5.2
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 (go) v2.8.2
github.com/aws/aws-sdk-go-v2/internal/v4a (go) v1.5.2
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams (go) v1.40.0
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding (go) v1.13.19
github.com/aws/aws-sdk-go-v2/service/internal/checksum (go) v1.11.2
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery (go) v1.13.2
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url (go) v1.14.2
github.com/aws/aws-sdk-go-v2/service/internal/s3shared (go) v1.20.2
github.com/aws/aws-sdk-go-v2/service/signin (go) v1.9.0
github.com/aws/aws-sdk-go-v2/service/sso (go) v1.37.0
github.com/aws/aws-sdk-go-v2/service/ssooidc (go) v1.42.0
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cncf/xds/go (go) v0.0.0-20260202195803-dba9d589def2
github.com/envoyproxy/go-control-plane/envoy (go) v1.39.0
github.com/envoyproxy/protoc-gen-validate (go) v1.3.3
github.com/felixge/httpsnoop (go) v1.1.0
github.com/go-jose/go-jose/v4 (go) v4.1.5
github.com/go-logr/logr (go) v1.4.4
github.com/go-logr/stdr (go) v1.2.2
github.com/golang-jwt/jwt/v5 (go) v5.3.1
github.com/google/martian/v3 (go) v3.3.3
Files by Type (count)
Other (.replay)
660
Go
300
Markdown
157
Shell
20
Other (.tf)
18
HTML
16
Other (.png)
14
Other (no ext)
12
Other (.mod)
10
Other (.sum)
10
YAML
6
JSON
5
Files by Type (size)
Other (.replay)
10MB
Go
2MB
Other (.sum)
572KB
Other (.png)
300KB
Markdown
206KB
Other (no ext)
175KB
JSON
73KB
Other (.tf)
45KB
Other (.mod)
44KB
Other (.jpg)
37KB
Shell
31KB
CSS
11KB

The LLM identified 5 files worth highlighting for reuse:

A generic retry utility with configurable backoff strategies (exponential, fixed) and context cancellation support. It is self-contained, has no internal dependencies beyond standard libraries, and can be extracted into any Go project to add retry logic with minimal modification.

file: internal/retry/retry.go ↗ | tags: #retry #backoff #resilience

Provides `HexEscape` and `URLEscape` functions for safely encoding special characters in blob keys and metadata. It is a small, isolated utility with no external dependencies, making it directly reusable in any Go project that needs to handle non-ASCII or reserved characters in identifiers.

file: internal/escape/escape.go ↗ | tags: #escaping #encoding #string-utils

A configurable batching utility for pub/sub operations that supports minimum/maximum batch sizes, byte size limits, and concurrent handler limits. It is used by multiple pubsub drivers to batch sends, receives, and acknowledgments. The batcher is self-contained and can be extracted for any project needing generic batching of asynchronous operations.

file: pubsub/batcher/batcher.go ↗ | tags: #batching #pubsub #performance

An encoder/decoder for document store values that supports structs, maps, slices, and custom marshalers. It provides a flexible serialization layer that can be reused in any document database driver. The codec is independent of the specific docstore implementation and can be extracted for general-purpose value encoding.

file: docstore/driver/codec.go ↗ | tags: #codec #serialization #encoder-decoder

A conformance test suite for blob storage drivers that defines a `Harness` interface and runs a comprehensive set of tests (read, write, delete, list, metadata, signed URLs, etc.). This pattern allows any new blob driver to be validated against the same behavioral contract. The test harness is reusable for testing any object storage backend.

file: blob/drivertest/drivertest.go ↗ | tags: #conformance-testing #driver-test #test-harness
Last analyzed: 2026-10-12 22:56:12.231601
Next check: 2027-01-10 22:56:12.205369
$ submit: