aws4s alternatives and similar packages
Based on the "Misc" category.
Alternatively, view aws4s alternatives based on common mentions on social networks and blogs.
-
BootZooka
Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc. -
ScalaSTM
A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps -
Miniboxing
Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project: -
media4s
Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. -
powerscala
Powerful framework providing many useful utilities and features on top of the Scala language. -
GoogleApiScala
This API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar. -
Easy Config
Easy Config makes Scala application configuration extremely easy. It reads configuration from the environment or command line arguments.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of aws4s or a related project?
README
aws4s
[Logo](aws4s-small.png)
Non-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats
Installation
libraryDependencies ++= Seq(
"org.aws4s" %% "aws4s" % aws4sVersion,
)
Service Support
- SQS: (
sendMessage
,receiveMessage
,deleteMessage
) - S3: (
listBuckets
,putObject
,deleteObject
,getObject
) - KMS: (
encrypt
,decrypt
,createKey
,scheduleKeyDeletion
) - DynamoDB (
createTable
,deleteTable
)
Missing a service or a certain functionality for a service? Create a feature request. PRs are also welcome.
Usage Examples
import cats.effect.IO
import org.aws4s.Credentials
import org.aws4s.sqs.{DelaySeconds, MessageBody, Queue, Sqs}
import org.http4s.client.blaze.Http1Client // You'll need the `http4s-blaze-client` dependency for that
val credentials = () => Credentials("ACCESS_KEY_HERE", "SECRET_KEY_HERE")
val httpClient = Http1Client[IO]()
val sqs = Sqs(httpClient, credentials)
val queueUrl = "https://sqs.eu-central-1.amazonaws.com/FAKE_QUEUE_URL"
val q = Queue.unsafeFromString(queueUrl)
val action: IO[Unit] =
sqs.sendMessage(q, MessageBody("Yo!"), Some(DelaySeconds(5)))
.attempt
.map {
case Left(err) => System.err.println(err)
case Right(success) => println(success)
}
// Run final action to produce effects
println("Sending a message..")
action.unsafeRunSync()
Versioning
Unstable API until 1.0.0
, then semantic versioning from there on.
Acknowledgements
Request signing logic is adapted from the code in this project.