Yet Another Google Cloud Platform Crate

Build status Crate Docs License

ya-gcp provides a set of APIs and utilties used to interact with Google Cloud Platform (GCP) services.

Currently Supported 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.

Feature Flags

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)

Comparison to other crates

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