Skip to content

Commit

Permalink
Merge pull request #3609 from benkio/A_new_dedicated_Cats_ecosystem_p…
Browse files Browse the repository at this point in the history
…age(s)_#3121
  • Loading branch information
larsrh committed Oct 21, 2020
2 parents a5efc49 + dae958e commit e0f0a83
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 83 deletions.
83 changes: 1 addition & 82 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,88 +143,7 @@ Links:
5. Glossary: [typelevel.org/cats/nomenclature.html](https://typelevel.org/cats/nomenclature.html)
6. Resources for Learners: [typelevel.org/cats/resources_for_learners.html](https://typelevel.org/cats/resources_for_learners.html)
7. FAQ: [typelevel.org/cats/faq.html](https://typelevel.org/cats/faq.html)


### <a name="ecosystem" href="#ecosystem"></a>The Cats ecosystem

By sharing the same set of type classes, instances and data types provided by Cats, projects can speak the same "Cats language", and integrate with each other with ease.

#### General purpose libraries to support pure functional programming

* [cats-retry](https://github.com/cb372/cats-retry): composable retry logic for Cats and Cats Effect
* [droste](https://github.com/andyscott/droste): recursion schemes for Cats
* [dsl-domains-cats](https://github.com/ThoughtWorksInc/dsl-domains-cats): The `!`-notation for creating Cats monadic expressions
* [eff](https://github.com/atnos-org/eff): functional effects and effect handlers (alternative to monad transformers)
* [Freestyle](https://github.com/frees-io/freestyle): pure functional framework for Free and Tagless Final apps & libs
* [iota](https://github.com/frees-io/iota): Fast [co]product types with a clean syntax
* [Monocle](https://github.com/julien-truffaut/Monocle): an optics library for Scala (and Scala.js) strongly inspired by Haskell Lens.
* [newts](https://github.com/julien-truffaut/newts): Defines newtypes compatible with Cats type classes
* [origami](https://github.com/atnos-org/origami): monadic folds
* [refined](https://github.com/fthomas/refined): simple refinement types for Scala
* [shims](https://github.com/djspiewak/shims): seamless interoperability for Cats and scalaz typeclasses and datatypes

#### Libraries with more specific uses

* [atto](https://github.com/tpolecat/atto): friendly little text parsers
* [cats-scalacheck](https://github.com/ChristopherDavenport/cats-scalacheck): Cats typeclass instances for ScalaCheck
* [cats-time](https://github.com/ChristopherDavenport/cats-time): cats typeclass instances for java time
* [circe](https://github.com/circe/circe): pure functional JSON library
* [Ciris](https://github.com/vlovgr/ciris): Lightweight, extensible, and validated configuration loading in Scala
* [cormorant](https://github.com/ChristopherDavenport/cormorant): CSV handling library for FP
* [decline](https://github.com/bkirwi/decline): A composable command-line parser
* [doobie](https://github.com/tpolecat/doobie): a pure functional JDBC layer for Scala
* [extruder](https://github.com/janstenpickle/extruder): Populate case classes from any data source
* [fastparse-cats](https://github.com/johnynek/fastparse-cats): cats Monad and Alternative instances for [fastparse](https://github.com/lihaoyi/fastparse)
* [Fetch](https://github.com/47deg/fetch): efficient data access to heterogeneous data sources
* [finch](https://github.com/finagle/finch): Scala combinator library for building Finagle HTTP services
* [Frameless](https://github.com/typelevel/frameless): Expressive types for Spark
* [FS2](https://github.com/functional-streams-for-scala): compositional, streaming I/O library
* [fuuid](https://github.com/ChristopherDavenport/fuuid): functional uuid's
* [github4s](https://github.com/47deg/github4s): wrapper around the GitHub API
* [grafter](https://github.com/zalando/grafter): dependency-injection library using the `Reader` pattern
* [gsheets4s](https://github.com/benfradet/gsheets4s): wrapper around the Google Sheets API
* [hammock](https://github.com/pepegar/hammock): Purely functional HTTP client
* [henkan](https://github.com/kailuowang/henkan): Type safe conversion between case class instances with similar fields
* [http4s](https://github.com/http4s/http4s): A minimal, idiomatic Scala interface for HTTP
* [itto-csv](https://github.com/gekomad/itto-csv): pure functional library for working with CSV
* [linebacker](https://github.com/ChristopherDavenport/linebacker): functional thread pool management
* [log4cats](https://github.com/ChristopherDavenport/log4cats): functional logging
* [monadic-html](https://github.com/OlivierBlanvillain/monadic-html): Tiny DOM binding library for Scala.js
* [Monix](https://github.com/monix/monix): high-performance library for composing asynchronous and event-based programs
* [Monix BIO](https://github.com/monix/monix-bio): `IO` alternative with typed errors
* [morphling](https://github.com/danslapman/morphling): free applicative schemas & instance derivation
* [natchez](https://github.com/tpolecat/natchez): an opentracing library, to use with Jaegger, Honeycomb, OpenCensus, and Lightstep.
* [phony](https://github.com/alirezameskin/phony): Fake data generator
* [pureconfig](https://github.com/pureconfig/pureconfig): A boilerplate-free library for loading configuration files
* [rainier](https://github.com/stripe/rainier): Bayesian inference in Scala
* [redis4cats](https://github.com/profunktor/redis4cats): a Redis client library.
* [scala-forex](https://github.com/snowplow/scala-forex): exchange rate lookups
* [scala-maxmind-ip-lookups](https://github.com/snowplow/scala-maxmind-iplookups): IP geolocation through [the Maxmind database](https://www.maxmind.com/en/home)
* [scala-referer-parser](https://github.com/snowplow-referer-parser/scala-referer-parser): referer parsing
* [scala-rl](https://github.com/sritchie/scala-rl): Functional, monadic reinforcement learning in Scala
* [scala-weather](https://github.com/snowplow/scala-weather): weather lookups
* [scanamo](https://github.com/guardian/scanamo): simpler DynamoDB access for Scala
* [seals](https://github.com/durban/seals): tools for schema evolution and language-integrated schemata
* [sup](https://github.com/kubukoz/sup): Composable, purely functional healthchecks in Scala
* [skunk](https://github.com/tpolecat/skunk): a data access library for Scala + Postgres.
* [tsec](https://github.com/jmcardon/tsec/): Typesafe, functional, general purpose cryptography and security library
* [coulomb-cats](https://github.com/erikerlandson/coulomb/tree/develop/coulomb-cats): cats typeclass instances for coulomb Quantity

Your project talks Cats too? [Submit a PR to add it here!](https://github.com/typelevel/cats/edit/master/README.md)

*The full-size [Cats logo](https://typelevel.org/cats/img/cats-logo.png) is available for use for Cats related projects, contents, souvenirs, etc.*

*We offer a [Cats Friendly Badge](https://typelevel.org/cats/img/cats-badge.svg) to let others know your project works with Cats!*

![Cats Friendly Badge](https://typelevel.org/cats/img/cats-badge-normal.png)

Below are quick html and markdown snippets to use the badge in your own project.
```html
<a href="https://typelevel.org/cats/"><img src="https://typelevel.org/cats/img/cats-badge-tiny.png" alt="Cats friendly" /></a>
```
```markdown
![Cats Friendly Badge](https://typelevel.org/cats/img/cats-badge-tiny.png)
```
8. The Typelevel Ecosystem: [typelevel.org/cats/typelevelEcosystem.html](https://typelevel.org/cats/typelevelEcosystem.html)

### Community

Expand Down
3 changes: 2 additions & 1 deletion docs/src/main/mdoc/colophon.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ There are other libraries that aim to foster Functional Programming in the Scala
* [Structures](https://github.com/mpilquist/Structures) A project very similar in
nature to Cats, also derived from scalaz. The Structures and Cats
projects have had a healthy relationship of sharing both ideas and code.


For a full list of Cats and Typelevel related projects and libraries, take a look at [The Typelevel Ecosystem](https://typelevel.org/cats/typelevelEcosystem.html)
Loading

0 comments on commit e0f0a83

Please sign in to comment.