Skip to main content

nova_boot/
lib.rs

1pub use async_trait::async_trait;
2pub use axum;
3pub use axum::Json;
4pub use inventory;
5pub use serde::{Deserialize, Serialize};
6
7pub mod config;
8pub mod error;
9pub mod runtime;
10pub mod state;
11pub mod traits;
12
13// Error handling and response modules
14pub use config::{
15    EnvConfigSource, JsonFileConfigSource, NovaConfig, NovaConfigBuilder, NovaConfigSource,
16    NovaSecretSource, ReloadableConfig, spawn_json_file_hot_reloader,
17};
18pub use error::{ErrorResponse, NovaError, NovaResult};
19pub mod discovery;
20
21pub use discovery::{Discovery, InstanceStatus, ServiceInstance};
22pub use error::DiscoveryError;
23// Observability is implemented by an optional plugin crate (nova-boot-observability).
24pub use nova_boot_resilience_store::LuaValue;
25pub use nova_boot_resilience_store::ResilienceStore;
26#[cfg(feature = "redis-store")]
27pub use nova_boot_resilience_store::redis_store::RedisStore;
28pub use runtime::{NovaApp, NovaRoute};
29pub use traits::{
30    NovaLifecycle, NovaModule, NovaPlugin, NovaRequestModel, NovaResponseModel, NovaRouterExtender,
31};
32
33pub use state::NovaState;
34// Public documentation: core types are documented in their respective modules
35// (see `crates/nova-boot/src/runtime.rs`, `state.rs`, and `error.rs`).
36
37// Observability plugin lives in `crates/nova-boot-observability` to avoid cycles.
38
39extern crate nova_boot_macros;
40pub use nova_boot_macros::{
41    NovaRequest, NovaResponse, delete, get, patch, post, put, rest_controller,
42};