Commix - "a response to a range of limitations in Integrant"

I would like to bring some attention to this library that I found a long time ago and have been using ever since. It plays in the same space as Component, Mount, Integrant and a host of other state management libraries. I discovered it in an Integrant issue made by the author after running in to the same walls with Integrant as he did.

Like Integrant, it uses a map- and multimethod-based approach, but in a (IMO) more flexible fashion that makes it easier to for instance compose sub-systems and have multiple components of the same kind. Unlike other state management libraries I’ve tried, Commix instantly “made sense” to me, and I am yet to run into any friction when using it. As is readily apparent, it has not seen much discussion or use in the community, mostly because I believe the author did not market it at all.

I encourage users of other state management libraries to take a look! Is Commix a undiscovered diamond or an average imitation? I’d love to hear your thoughts!

6 Likes

Thank you for sharing this. The discussion in the issue was pretty informative. I never had such requirements from Integrant myself, but it’s interesting to see in what directions people are pushing the library and the components life-cycle approach.

I see that Integrant already provides some of the features that were missing when the issue was submited – composite keys for components and #ig/refset.