Skip to content

Using a dependency injection library #990

@tony-iqlusion

Description

@tony-iqlusion

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions