Crate sai[][src]

Expand description

Sai

Sai is a framework for managing lifecycle and dependency of your software components. In some languages, it was called “IoC” and “Dependency Injection”. The main usecase of this framework is on medium/large scale web services.

The Sai ecosystem consists of two major concepts: System, Component. A System is a runtime unit that control lifecycles of all Components. A Component is a group of logic. A Component can depends on other Components and it can also have its own internal state.

Macros

combine_component_registry

A macro that combines any number of Component Registry

component_registry

A macro that helps setting up Component Registry

Structs

Injected

The official wrapper for all dependencies.

System

A system is a collection of components + the ability to control the lifecycle of components in a way meeting the dependency requirement of components, e.g. start/stop them.

Traits

Component

A Component is a bunch of business-logic behaviors + startup logic.

ComponentLifecycle

ComponentLifecycle is simply start()/stop()

ComponentRegistry

ComponentRegistry is a data structure for system to find a meta information for component. It’s required for a system to have a ComponentRegistry.

Attribute Macros

async_trait

Re-export from async_trait library

Derive Macros

Component

Dervive Macro for defining a component