Integrant is a minimalistic micro-framework for building applications following a data-driven architecture. It lets you define system components declaratively as configuration data and handles lifecycle actions (init, halt, resume) in dependency order, serving as a modern alternative to Component or Mount. Integrant was built as a reaction to fix some perceived weaknesses with Component. In Component, systems are created programmatically. Constructor functions are used to build records, which are then assembled into systems. In Integrant, systems are created from a configuration data structure, typically loaded from an edn resource. The architecture of the application is defined through data, rather than code.
Features
- Defines application architecture via plain Clojure data (maps)
- Automatically orders initialization and halting tasks by dependencies using multimethods
- Supports resuming with reuse of existing resources when possible (resume)
- Provides tools to construct (init), suspend (suspend!), and tear down systems in reverse order
- Allows extraction of dependency graphs and deep merging of config maps (dependency-graph, converge)
- Compatible with both Clojure and ClojureScript environments
Categories
LibrariesLicense
MIT LicenseFollow Integrant
Other Useful Business Software
Our Free Plans just got better! | Auth0
You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of Integrant!