magnolia
Chimney
Our great sponsors
magnolia | Chimney | |
---|---|---|
4 | 13 | |
744 | 1,106 | |
0.9% | 2.7% | |
7.6 | 9.7 | |
6 days ago | 1 day ago | |
Scala | Scala | |
Apache License 2.0 | Apache License 2.0 |
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
-
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.
Chimney
- Chimney 0.8.0 (stable) released
- Chimney 0.8.0-M1 with the initial support for Scala 3
- Chimney 0.8.0-M1 – type mapping library for Scala released for Scala 3
-
ORM in Scala
But yeah, I wonder if using a tool for case classes conversion like https://github.com/scalalandio/chimney would help in managing those ADT hierarchies for DB/business logic/web layer/etc.
-
Chimney 0.7.0 released
Hello, if you have some nice examples could you please check if it's something that would fit any of issues planned for 0.7.1 or create a new one?
-
Output object with Circe with sealed trait + case classes adds sealed trait block
Perhaps, https://github.com/scalalandio/chimney would leverage it.
-
Smithy4s 0.15.0, now with Smithy 2.0 support
Thankfully, there are some solutions that can help reduce the boilerplate of these manual conversions. For instance, chimney : https://scalalandio.github.io/chimney/
-
Is it possible to get runnable generated scala code from a macro (chminey to be specific)?
I want to upgrade one project to Scala 3.1, but I'm using the macro heavy chimney (https://github.com/scalalandio/chimney) to reduce the boilerplate, which is not available for Scala 3 yet. My idea was to copy and paste the code that chimney generates on 2.13, and after that uncomment the uses of chimney for now.
-
From ES6 to Scala: Basics
In my $dayjob we originally used Scala, but I pushed for a couple of new services to be written in TypeScript/Node as it was really hard to hire Scala developers. I'd say it worked well, we even took a somewhat functional approach to building things. We tried fp-ts but that was a bit hardcore (when you are trying to hire TypeScript developers who don't know functional programming), so just built Either and Option types which provided 99% of what we needed.
There are still a few things I miss though:
* Pattern matching and exhaustive checking. Using a switch statement it is possible to define a function that can emulate the compile-time exhaustive checking, but it's still rather weak compared to what you can do in Scala.
* Implicits. Being able to define something that can convert say a UUID to a String or vice versa automatically just feels like magic, especially when dealing with data from third party systems.
* Compiler macros and metaprogramming. It enables tools like Chimney (https://scalalandio.github.io/chimney/) to be built, which I don't think are possible with TypeScript right now.
-
Scala Type Classes from Scratch
Converting between these classes can add some boilerplate, but luckily there are libraries like https://github.com/scalalandio/chimney that make it much easier.
What are some alternatives?
Shapeless - Generic programming for Scala
seals - Tools for schema evolution and language-integrated schemata
Monocle - Optics library for Scala
Learn-by-doing functional programming course on Scala - learn-by-doing course/tutorial for functional programming on scala
Lamma - Lamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc.
kittens - Automatic type class derivation for Cats
Enumeratum - A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
echopraxia-plusscala - Scala API for Echopraxia
Scalaz - Principled Functional Programming in Scala
cats-effect - The pure asynchronous runtime for Scala
Quicklens - Modify deeply nested case class fields