| Hi! thanks for the feedback. I'm going to change it to a bulleted list, as you suggest. What it does is:
- load your application from a configuration file
- you can have multiple configuration file (i.e. one per environment: local, dev, prod, staging, etc.)
- tell applipy which environment to load through an environment variable `APPLIPY_ENV`
- implement self-contained or interdependant applipy modules that you can tell applipy to include through the config file
- implement multiple AppHandles: an interface that implements on_init(), on_start() and on_shutdown()
- modules can register the AppHandles
- applipy will gracefully manage the lifecycle of your application An example of use case is a web page I have for an online guild. It has an integration with discord and, of course, login with permisions, etc. When I'm developing locally I can simply go to the local.yaml configuration file and comment out the modules I don't want to run locally. Because of the way it is architected I can easily remove the discord, login and permission check modules and run it locally like that. Then, I also have a prod.yaml file with all production modules and configurations. I also have different data store implementations for local and production environments. I did this by defining an interface that all classes that require persistence access require and I include different modules, that register in the injector different implementations of the same interface, in the configuration files for each environment. I hope that explains it better. I will for sure use the above explanation to update the README.md :D PD: that was only applipy core. I've also published other libraries that build on top of it: https://gitlab.com/applipy |