-
Notifications
You must be signed in to change notification settings - Fork 41
Description
This issue is intended to discuss replacing Abscissa's current built-in component system with a more mature 3rd party dependency injection library.
The existing system is designed to be dynamic at runtime to allow configuration to control which components are activated and dynamically compute the component startup ordering (with some bugs it seems: #989). However, most Rust dependency injection libraries are designed to operate at compile time and produce compile errors if they can't compute an ordering. Something we'll need to decide is if it's worth retaining runtime dynamism or if it makes sense to switch to a compile-time library instead.
Async support is also an interesting consideration as it would allow for parallelized startup when components aren't interdependent.