zio-magic
Construct ZLayers automagically (w/ helpful compile-time errors) (by kitlangton)
MacWire
Lightweight and Nonintrusive Scala Dependency Injection Library (by softwaremill)
Our great sponsors
zio-magic | MacWire | |
---|---|---|
7 | 6 | |
253 | 1,253 | |
- | 0.1% | |
0.0 | 7.2 | |
3 months ago | 5 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.
zio-magic
Posts with mentions or reviews of zio-magic.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-02-01.
-
Why no scala native IOC containers?
If you use ZIO, definitely give ZLayer and zio-magic a try, it's awesome!
-
Zio / Zionomicon : is it worth it ?
For those that don't know, for ZLayer, there's ZIO Magic: https://github.com/kitlangton/zio-magic/
-
Part 10 - core & persistence - TF to ZIO (The Big Rewrite) - Getting Started with ZIO in Scala3
(.inject will come out-of-the-box in ZIO 2, but for now you can get it here: zio-magic)
-
Structuring Code with ZIO & ZLayers
I made a lil' library to help a bit with this—sort of macwire just for ZIO https://github.com/kitlangton/zio-magic
-
ZIO in Production?
Have you tried using https://github.com/kitlangton/zio-magic ? Do you think it could alleviate your pains with ZLayer?
-
zio-magic — Automagical, compile-time ZLayer construction
I'm not sure if I understand. The full example is in the readme README, which should help clarify. But happy to answer, if you could expand a bit ;)
MacWire
Posts with mentions or reviews of MacWire.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-09-10.
-
typelevel
Coming back to ZIO, besides learning the operators which ZIO has, there is not much to it and you have to embrace calling ZIO.x everywhere. The Layers in ZIO 2.0 are excellent and I believe that the creators want to trick us to write good OOP and we are one macro away from Springs Autowire. Perhaps even macwire is up to speed already, I didn't check for a long time.
-
Why no scala native IOC containers?
You can have IoC without using a DI framework. You just pass the arguments manually. I've found that it works really well. If however that's not your preference there are a couple DI frameworks in scala such as: https://github.com/softwaremill/macwire and https://izumi.7mind.io/distage/index.html
-
Which would be the scala way of building a modular/plugin based architecture application?
Implement the application around https://github.com/softwaremill/macwire and hope the wiredInModule feature (which support dynamic loading) would be ported to Scala 3 soon.
-
Macwire alternatives for scala 3
Arguing for Macwire in Scala 3 is moot anyway, because it won't be available there: https://github.com/softwaremill/macwire/commit/e9281111d78a1beeb8950f367be18cbb67aef9fe
-
Structuring Code with ZIO & ZLayers
One easy reason is that macwire won't be available for Scala 3 (https://github.com/softwaremill/macwire#scala3) 😉
What are some alternatives?
When comparing zio-magic and MacWire you can also consider the following projects:
skunk - A data access library for Scala + Postgres.
Scala-Guice - Scala extensions for Google Guice
doobie - Functional JDBC layer for Scala.
DIStage - Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
polysemy - :gemini: higher-order, no-boilerplate monads
Airframe - Essential Building Blocks for Scala
zio-grpc - ScalaPB meets ZIO: write purely functional gRPC services and clients using ZIO
SubCut - Scala Uniquely Bound Classes Under Traits
Scaldi - Lightweight Scala Dependency Injection Library
Grafter
Domino - OSGi dynamics made easy
Cableguy - Yet another Scala Dependency Injection Library