1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Copyright © 2025-2026 Wenze Wei. All Rights Reserved.
//!
//! This file is part of Ri.
//! The Ri project belongs to the Dunimd Team.
//!
//! Licensed under the Apache License, Version 2.0 (the "License");
//! You may not use this file except in compliance with the License.
//! You may obtain a copy of the License at
//!
//! http://www.apache.org/licenses/LICENSE-2.0
//!
//! Unless required by applicable law or agreed to in writing, software
//! distributed under the License is distributed on an "AS IS" BASIS,
//! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//! See the License for the specific language governing permissions and
//! limitations under the License.
//! # Application Runtime and Builder
//!
//! This module provides the application runtime and builder for constructing Ri applications.
//! The `RiAppBuilder` follows the builder pattern for fluent configuration, while the `RiAppRuntime`
//! manages the application lifecycle and module execution.
//!
//! ## Key Components
//!
//! - **RiAppBuilder**: Fluent API for configuring and building Ri applications
//! - **RiAppRuntime**: Manages the application lifecycle and module execution
//!
//! ## Design Principles
//!
//! 1. **Builder Pattern**: The `RiAppBuilder` provides a fluent API for configuring applications
//! 2. **Module Lifecycle**: Modules go through a well-defined lifecycle with init, start, and shutdown phases
//! 3. **Dependency Resolution**: Modules are sorted based on dependencies and priority
//! 4. **Async Support**: Full support for both synchronous and asynchronous modules
//! 5. **Fault Tolerance**: Non-critical modules can fail without crashing the entire application
// Re-export from app_builder.rs
pub use RiAppBuilder;
// Re-export from app_runtime.rs
pub use RiAppRuntime;