https://github.com/pepegar/wookie
Purely functional library for working with AWS in Scala
https://github.com/pepegar/wookie
aws cats fp free-monads scala
Last synced: about 1 year ago
JSON representation
Purely functional library for working with AWS in Scala
- Host: GitHub
- URL: https://github.com/pepegar/wookie
- Owner: pepegar
- License: mit
- Created: 2016-06-21T00:34:02.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-09-26T15:52:36.000Z (almost 10 years ago)
- Last Synced: 2025-04-12T20:04:17.112Z (about 1 year ago)
- Topics: aws, cats, fp, free-monads, scala
- Language: Scala
- Size: 202 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
wookie
======
[](https://travis-ci.org/pepegar/wookie)
[](https://www.codacy.com/app/jl-garhdez/wookie?utm_source=github.com&utm_medium=referral&utm_content=pepegar/wookie&utm_campaign=Badge_Coverage)
[](https://www.codacy.com/app/jl-garhdez/wookie?utm_source=github.com&utm_medium=referral&utm_content=pepegar/wookie&utm_campaign=Badge_Grade)
**wookie** is a purely functional library for connecting to AWS with Scala.
### [Documentation][docs]
**wookie** is created to be:
* _Pure functional_. **wookie** is based on [Free monads][free monads]. It
provides interpreters to evaluate these monadic computations and communicate
with AWS servers.
* _Modular_. Each service lives in its own package, and they share only a few
abstractions. Also, each http client lives in its own package, and you can
import the one that fits for your project, or [implement your own][clients].
### Quickstart
In order for you to start coding, you will need to import latest service project
in your SBT `build.sbt` file.
```
libraryDependencies += "io.github.pepegar" %% "wookie-dynamodb" % "0.1-SNAPSHOT"
libraryDependencies += "io.github.pepegar" %% "wookie-s3" % "0.1-SNAPSHOT"
```
And you might want to pull a client as well:
```
libraryDependencies += "io.github.pepegar" %% "wookie-akka-http" % "0.1-SNAPSHOT"
```
### CodeGen
Inspired by [doobie][doobie], we are using code generation for writing algebras
and typeclasses for different services. This allows us to be much faster while
creating services.
You can learn more in [code-generation][code-generation]
### Inspiration
**wookie** is inspired in several projects out there.
* [doobie][doobie] principled DB access for Scala.
* [fetch][fetch] efficient data access for Scala.
[docs]: https://pepegar.github.io/wookie
[free monads]: http://typelevel.org/cats/tut/freemonad.html
[clients]: https://pepegar.github.io/wookie/structure.html#HTTP+Clients
[doobie]: https://github.com/tpolecat/doobie
[fetch]: https://github.com/47deg/fetch
[code-generation]: https://github.com/pepegar/wookie/blob/master/wookie-gen/README.md