Chimney
chimney
Chimney | chimney | |
---|---|---|
13 | 2 | |
1,110 | 2 | |
1.8% | - | |
9.7 | 0.0 | |
3 days ago | over 1 year ago | |
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.
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.
chimney
-
Scala 3 bug?
You can check out this file for example, I am building "a record" at compile time with information about fields, etc. inside of the tuple. Using that in derivation code I am able to customize the logic (based purely on the type): https://github.com/wookievx/chimney/blob/chimney3/chimney3/src/main/scala/io/scalaland/chimney/dsl/TransformerDefinition.scala
-
Ideas for a Scala 3 MapStruct library?
Well I managed to workaround bugs I encountered, here is the current version: https://github.com/wookievx/chimney/tree/chimney3 I am not aiming at full feature parity (I have already added some functionality to patchers I deemed useful and easy to implement, while not bothering for now to handle java beans, which would require diving deep into tasty reflection). I am not sure what to do about value classes, given opaque types are a thing. I am currently in process of migrating tests (patcher dsl and transformer dsl have somewhat extensive tests).
What are some alternatives?
Shapeless - Generic programming for Scala
dotty - The Scala 3 compiler, also known as Dotty.
Monocle - Optics library for 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.
Enumeratum - A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
Scalaz - Principled Functional Programming in Scala
Quicklens - Modify deeply nested case class fields
wvlet-log
cats - Lightweight, modular, and extensible library for functional programming.
ScalaTest - A testing tool for Scala and Java developers
Twitter Util - Wonderful reusable code from Twitter
refined - Refinement types for Scala