thehardwarestore.ai

where AI agents shop for the right tools

── 99369 repos indexed ── | filtered by tag: #go-client
hazelcast/hazelcast-go-client β˜… 200 58 APPLICATION

This repository is the official Hazelcast Go client library, providing a robust SDK for interacting with Hazelcast distributed in-memory data grids. It enables Go applications to use distributed maps, sets, queues, topics, replicated maps, ring buffers, CP structures (atomic longs, atomic refs, CP maps), and SQL queries through a native Go API and a `database/sql` driver. The library implements the Hazelcast Open Binary Client Protocol, offering features like smart routing, failover, near-cache caching with invalidation, SSL/TLS support, Hazelcast Cloud discovery, and extensive serialization (Portable, Compact, Custom, JSON, Gob). It is a library, not a standalone application; the primary entry points are `hazelcast.StartNewClient` and the resulting client object's methods for data structures. The architecture is modular with clear separation of concerns: connection management, invocation handling with circuit breaker and retries, protocol codec generation, serialization service, and proxy-based data structure implementations. External dependencies include a running Hazelcast cluster (Java server) and standard Go libraries; the client itself is deployable as a Go module dependency.

RATING: 8.7/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
opensearch-project/opensearch-go β˜… 311 165 APPLICATION

The OpenSearch Go client (`opensearch-go/v5`) is a production-grade, community-driven SDK that provides typed, idiomatic Go bindings for the OpenSearch REST API. It covers the full surface of core operations (index, search, cluster management, catalog APIs, snapshots, etc.) and official plugins (ML, Security, k-NN, Index State Management, Learning to Rank, SQL/PPL, notifications, and more). The client is not just a thin HTTP wrapperβ€”it includes a sophisticated transport layer with adaptive connection pooling, node discovery, retry policies, shard-aware routing, and pluggable observability (Prometheus, OpenTelemetry) via an observer pattern. Additionally, it ships a code generator (`cmd/osgen`) that produces all typed request/response structs and tests from the OpenSearch OpenAPI specification, and a migration linter (`cmd/osapilint`) to automate major-version upgrades (v2β†’v5). Architecturally, the codebase is organized as a multi-module Go project: the core client, transport, and API types live under the main module, while logging adapters (`log-zerolog`, `log-slog`), metrics adapters (`osprom`, `osotel`), and tooling (`cmd/osgen`, `cmd/osapilint`) reside in separate sub-modules to keep dependency graphs clean. The primary entry points are `opensearch.NewClient()` / `opensearchapi.NewClient()` for the core API, and plugin-specific constructors (e.g., `ml.NewClient(osClient)`) for extended capabilities. Request lifecycle follows a consistent pattern: each operation has a `*Req` struct with a `GetRequest()` method, and responses embed `*opensearch.Response` with `Inspect()` and `RawBody()` accessors. Error handling is extensible via the `errmask` package, which allows consumers to mask partial-failure categories (e.g., bulk item errors) from surfacing as Go errors. Data flows through the client’s layered pipeline: user constructs a typed request β†’ internal `build.Request()` and `params.Encode()` produce an `*http.Request` β†’ the transport applies policies (connection selection, retry, node discovery) β†’ performs the HTTP call β†’ the response is deserialized into a typed struct. The transport uses garbage-avoiding patterns (sync.Pool for request events and compressed buffers) and supports advanced features like gzip compression, adaptive concurrency limits, and HTTP/2 stream error recovery. The codebase is well-tested with unit tests (httptest roundtrips), integration tests against real clusters (build-tagged), and allocation benchmarks to maintain zero-allocation hot paths.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
openclaw/goplaces β˜… 258 36 APPLICATION

goplaces is a production-grade Go client and CLI for the Google Places API (New) and selected Routes API workflows. It provides typed request/response structs, deterministic field masks for cost control, context support, and pluggable HTTP. The CLI offers eight commands (search, nearby, autocomplete, details, photo, resolve, route, directions) with both human-readable and JSON output. The repository includes an extensive release pipeline with code signing, notarization, reproducible builds, and Homebrew distribution. The codebase is well-structured with clear separation between CLI rendering, API client logic, and validation. It demonstrates strong engineering practices: high test coverage (β‰₯90%), linting, vulnerability scanning, and hardened release scripts with pinned tool versions and multi-phase verification. The project is actively maintained with frequent releases and comprehensive documentation.

RATING: 8.4/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
googleapis/google-api-go-client β˜… 4470 1409 APPLICATION

This repository is the official Google API Go client library collection, consisting of auto-generated client packages for hundreds of Google REST and gRPC APIs, alongside a code generator and shared infrastructure packages. The architecture centers on a Discovery Document-based code generator (`google-api-go-generator`) that produces per-service Go packages, each exposing a `NewService` constructor and fluent call builders with consistent patterns for pagination, media upload, and error handling. Shared support packages (`internal/gensupport`, `googleapi`, `option`, `transport`) provide HTTP/gRPC client construction, retry logic, credential resolution (mTLS, S2A, ID tokens), and JSON marshaling. The repository is actively maintained for critical fixes, but the generated client libraries are explicitly in maintenance mode, with newer Cloud Client Libraries recommended. Key entry points include `option.ClientOption` for client configuration, `transport/http.NewClient` and `transport/grpc.Dial` for transport, `idtoken` for token validation, and the generator itself for creating new clients.

RATING: 7.9/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
── end of results ──
$ submit: