ya-gcp provides a set of APIs and utilties used to interact with Google Cloud Platform (GCP) services.
Production maturity: - PubSub
Alpha maturity: - Google Cloud Storage - Bigtable
Different service APIs can be accessed through modules enabled with
compile-time features. See the list of supported features below. Service
clients are created using the ClientBuilder
,
which serves as an entry-point to this library.
The following flags can be enabled to change what code is included
Services:
- pubsub
enables the PubSub API
- storage
enables the GCS API
- bigtable
enables the Bigtable API
Miscellaneous:
- rustls
use Rustls for TLS support, enabled by default
- openssl
use OpenSSL for TLS support
- emulators
includes support for service emulation (can be useful for testing)
Generally speaking, this crate aims to provide ergonomic and robust interfaces
for the supported services out-of-the-box. For example, authentication handling
should be simple, with the user only having to provide credentials and not call
out to a separate library. Similarly, idiomatic rust traits should be provided,
such as Stream
and Sink
for PubSub subscribing and publishing. Other crates
for interacting with GCP may provide different trade-offs, such as supporting a
greater breadth of services
ya-gcp
internally uses tame-gcs
for its GCS support (providing the
IO layer)ya-gcp
. Supports a few more
services, though support is sometimes in less depth (e.g. doesn't have
streaming pull requests and reconnection for PubSub)ya-gcp
is based on tonic
in Rust