Coder Social home page Coder Social logo

ya-gcp's Introduction

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

  • cloud-storage - A library which provides access to Google Cloud Storage specifically. While its feature set is good, it is not particularly flexible. It doesn't support alternative HTTP clients, or different authentication flows.
  • tame-gcs - A library which enables accessing GCS, but does not provide a means of performing IO itself. ya-gcp internally uses tame-gcs for its GCS support (providing the IO layer)
  • google-cloud - A library with a similar structure and philosophy to 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)
  • google-pubsub1 - This crate, like others from the same generator system in google-apis-rs, provides relatively low-level bindings to the services they connect to. The user is responsible for bringing their own HTTP client and authentication, making it difficult to use. That said, the generated crates do thoroughly cover many google services
  • google-cloud-rust - As of this writing still largely experimental. Based on grpcio, which wraps the C gRPC library, whereas ya-gcp is based on tonic in Rust

ya-gcp's People

Contributors

rnarubin avatar jneem avatar zmitchell avatar matthew-healy avatar xlambein avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.