Skip to main content

nest_rs/
lib.rs

1//! `nestrs` — umbrella crate that re-exports the framework's surface so an
2//! application can write a single `use nest_rs::prelude::*;` instead of a
3//! handful of per-crate imports.
4//!
5//! The per-crate split (`nest-rs-core`, `nest-rs-http`, …) stays the public,
6//! versioned source of truth. This crate adds no API of its own — it only
7//! collects what already exists behind Cargo features, with one feature per
8//! surface so an app pays only for what it uses.
9#![warn(missing_docs)]
10
11pub use nest_rs_core as core;
12
13#[cfg(feature = "http")]
14pub use nest_rs_http as http;
15
16#[cfg(feature = "config")]
17pub use nest_rs_config as config;
18
19#[cfg(feature = "database")]
20pub use nest_rs_database as database;
21
22#[cfg(feature = "seaorm")]
23pub use nest_rs_seaorm as seaorm;
24
25#[cfg(feature = "graphql")]
26pub use nest_rs_graphql as graphql;
27
28#[cfg(feature = "ws")]
29pub use nest_rs_ws as ws;
30
31#[cfg(feature = "mcp")]
32pub use nest_rs_mcp as mcp;
33
34#[cfg(feature = "queue")]
35pub use nest_rs_queue as queue;
36
37#[cfg(feature = "redis")]
38pub use nest_rs_redis as redis;
39
40#[cfg(feature = "schedule")]
41pub use nest_rs_schedule as schedule;
42
43#[cfg(feature = "events")]
44pub use nest_rs_events as events;
45
46#[cfg(feature = "authn")]
47pub use nest_rs_authn as authn;
48
49#[cfg(feature = "authz")]
50pub use nest_rs_authz as authz;
51
52#[cfg(feature = "social")]
53pub use nest_rs_social as social;
54
55#[cfg(feature = "opentelemetry")]
56pub use nest_rs_opentelemetry as opentelemetry;
57
58#[cfg(feature = "openapi")]
59pub use nest_rs_openapi as openapi;
60
61#[cfg(feature = "health")]
62pub use nest_rs_health as health;
63
64#[cfg(feature = "throttler")]
65pub use nest_rs_throttler as throttler;
66
67#[cfg(feature = "server-timing")]
68pub use nest_rs_server_timing as server_timing;
69
70#[cfg(feature = "testing")]
71pub use nest_rs_testing as testing;
72
73/// The everyday import — covers the decorators and types an app reaches for
74/// on every controller, service, and module.
75///
76/// ```ignore
77/// use nest_rs::prelude::*;
78/// ```
79///
80/// Items behind Cargo features are pulled in only when the matching feature
81/// is enabled. The default features (`http`, `config`) cover the typical
82/// HTTP-API case.
83pub mod prelude {
84    pub use nest_rs_core::{
85        App, AppBuilder, Container, ContainerBuilder, Module, hooks, injectable, module,
86    };
87
88    #[cfg(feature = "http")]
89    pub use nest_rs_http::{
90        ClientIp, Ctx, HttpConfig, HttpModule, RawBody, Reflector, Scoped, Valid, controller,
91        http_code, input, redirect, response_header, routes,
92    };
93
94    #[cfg(feature = "http")]
95    pub use nest_rs_http::poem::web::{Json, Path, Query};
96
97    #[cfg(feature = "config")]
98    pub use nest_rs_config::{Config, Namespaced, config};
99}