toknapp / google4s

A lean, functional library for Google Cloud Services

GitHub

Google4s

Build Status Latest version Latest version Latest version

This project aims to provide safe, composable and easy to use clients for Google Cloud Platform Services written in functional style Scala.

Currently supported clients are

The client implementations are using Google's Java clients underneath however, the Java code is mostly generated so it's not really fun to use it.

  • Omniversal nested builder pattern
  • No or limited concurrency
  • Uncomposable patterns

google4s solves this problems by replacing the builder pattern with simple method calls with strong data types. Effect handling and concurrency can be done in an arbitary kind F[_] you just have to provide a natural transformation (() => ?) ~> F. See Llift for deails.

Usage

The clients are structured and released as separate modules.

Add the latest version to your project

Latest Stable

libraryDependencies += "co.upvest.google4s" %% "google4s-..."  % "0.0.2"

Latest Snapshot

libraryDependencies += "co.upvest.google4s" %% "google4s-..."  % "0.0.2-SNAPSHOT"

Examples

Please refer to the specific client documentation for examples

Contributing

Coming soon... feel free to create a PR we will figure it out.

Limitations

  • We try to implement the configs as lean as possible. As the result some advanced configuration could be missing. If you encounter this problem please create an issue or a PR we are happy to add what is missing.

  • Please refer to the specific client documentation for the list of known limitations:

Contact

By questions, comments or suggestions feel free to get in touch by creating an PR, issue or telepathically.

Cavecats sic

Copyright 2019 Ivan Morozov, Gustav Behm, Tokn GmbH (https://upvest.co)

google4s is provided to you as free software under the MIT license. The MIT software license is attached in the COPYING file.