1pub mod config;
2pub mod container;
3pub mod database;
4pub mod error;
5pub mod http;
6pub mod inertia;
7pub mod middleware;
8pub mod routing;
9pub mod server;
10
11pub use config::{
12 env, env_optional, env_required, AppConfig, Config, Environment, ServerConfig,
13};
14pub use container::{App, Container};
15pub use database::{Database, DatabaseConfig, DatabaseType, DbConnection, Model, ModelMut, DB};
16pub use error::{AppError, FrameworkError, HttpError};
17pub use http::{json, text, HttpResponse, Redirect, Request, Response, ResponseExt};
18pub use inertia::{InertiaConfig, InertiaContext, InertiaResponse};
19pub use middleware::{
20 register_global_middleware, Middleware, MiddlewareFuture, MiddlewareRegistry, Next,
21};
22pub use routing::{delete, get, post, put, route, GroupBuilder, GroupRouter, RouteBuilder, RouteDefBuilder, Router};
23pub use server::Server;
24
25pub use async_trait::async_trait;
27
28#[doc(hidden)]
30pub use inventory;
31
32#[doc(hidden)]
34pub use serde_json;
35
36pub use serde;
38
39pub use kit_macros::domain_error;
41pub use kit_macros::inertia_response;
42pub use kit_macros::injectable;
43pub use kit_macros::InertiaProps;
44pub use kit_macros::redirect;
45pub use kit_macros::service;
46
47#[macro_export]
48macro_rules! json_response {
49 ($($json:tt)+) => {
50 Ok($crate::HttpResponse::json($crate::serde_json::json!($($json)+)))
51 };
52}
53
54#[macro_export]
55macro_rules! text_response {
56 ($text:expr) => {
57 Ok($crate::HttpResponse::text($text))
58 };
59}
60
61#[macro_export]
79macro_rules! global_middleware {
80 ($middleware:expr) => {
81 $crate::register_global_middleware($middleware)
82 };
83}
84
85pub mod testing {
90 pub use crate::container::testing::{TestContainer, TestContainerGuard};
91}