Skip to content

Instantly share code, notes, and snippets.

@Daenyth
Created October 10, 2020 14:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Daenyth/663fc7ada92e1edbcff1008381e51162 to your computer and use it in GitHub Desktop.
Save Daenyth/663fc7ada92e1edbcff1008381e51162 to your computer and use it in GitHub Desktop.
Scala AWS library index

Notes

There's a lot of libraries with overlapping support. This tries to index the ones I've seen.

I only care about / list the ones that support cats-effect/fs2 in some way or another.

I'll list some project status:

  • Dead = fully abandoned or archived
  • Inactive = no changes for over a year (as of oct 2020)

Libraries

In no specific order

Wrapping aws sdk

  • fs2-aws. Idiomatic fs2. Supports streaming s3. S3, SQS, Dynamo
  • fs2-blobstore. Inactive Aims to have idiomatic fs2 wrapper for many file storage apis. Supports S3, Box, GCS

Wrapping aws sdk v2

  • aws4cats - Inactive. SQS, S3 (wip), Dynamo (wip). Inactive
  • reactive-aws-clients - Code generated clients and models. Monix, fs2, akka-streams support, but not actually streaming - effect types only. Not idiomatic design.

Not wrapping java library

  • [https://github.com/rstradling/awsio] - Dead
  • comms-aws - Experimental and not fully supported. Built on http4s+fs2. Supports S3, but not streaming/multipart upload. Only eager-in-memory upload. Contains Auth/signing impl - may be useful for code reuse elsewhere
  • dynosaur - Inactive. Idiomatic client for DynamoDB in pure scala with fs2. Has documentation and allows high-level data modeling with typeclass encoder/decoder approach
@BalmungSan
Copy link

AFAIK fs2-blobstore is already using the AWS SDK v2, you can see on maven that it depends on the v2 version of the Java library. Also, this seems to be the PR that made that change.

Additionally, I would also like to add sqs4s which is a native library for AWS SQS which only requires an http4s client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment