magnolia
Easy, fast, transparent generic derivation of typeclass instances (by propensive)
kittens
Automatic type class derivation for Cats (by typelevel)
Our great sponsors
magnolia | kittens | |
---|---|---|
4 | 4 | |
741 | 525 | |
0.5% | 1.0% | |
7.9 | 8.6 | |
4 days ago | 8 days ago | |
Scala | Scala | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
magnolia
Posts with mentions or reviews of magnolia.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-06.
-
Question regarding Recursive datatypes and cats typeclasses (Haskell to Scala)
Scala 2/3: * Magnolia
-
Beginner's guide to derivations in Scala
If Mirror is too low level, I'd suggest playing with Magnolia https://github.com/softwaremill/magnolia. I haven't found any posts about it, I plan to publish something myself as a follow up to the one above. In the meantime you might want to check out magnolia examples https://github.com/softwaremill/magnolia/tree/scala3/src/examples
-
Some notes on developing a structured logging API for Scala
The second feature is the auto-derivation for case classes using Magnolia. This saves a bunch of typing for case classes, while fitting neatly into field builders. This is not new if you've used Shapeless, but I found the macro-based approach in Magnolia much easier conceptually. I did find a small bug but it's easy enough to work around.
-
How to improve scala skills
Using shapeless is completelly optional and has a lot of disadvantages. I'd not even consider it a good learning material for functional programming. Magnolia is a bit more robust and has much better design, debugging and implicits resolution - it will be less pointful than starting with shapeless.
kittens
Posts with mentions or reviews of kittens.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-06.
-
Question regarding Recursive datatypes and cats typeclasses (Haskell to Scala)
kittens
-
Is there any package with something like Default typeclass implementation?
Sounds like you can use cats.Monoid with its empty method to generate such instances and you can use kittens for automatic derivation of Monoid typeclass for your case classes.
-
Generic Type Class Derivation in Scala 3
there is a list in https://github.com/typelevel/kittens
-
[Debate] Is type level programming useful?
All sorts of typeclass derivation mechanisms are based on type level programming. I'm currently using kittens to speed up prototyping and solve a specific problem at work.
What are some alternatives?
When comparing magnolia and kittens you can also consider the following projects:
Shapeless - Generic programming for Scala
seals - Tools for schema evolution and language-integrated schemata
Learn-by-doing functional programming course on Scala - learn-by-doing course/tutorial for functional programming on scala
echopraxia-plusscala - Scala API for Echopraxia
Chimney - Scala library for boilerplate-free, type-safe data transformations
cats-effect - The pure asynchronous runtime for Scala
UnPack.jl - `@pack!` and `@unpack` macros