pub mod app;
pub mod auth;
pub mod cache;
#[cfg(feature = "cache-redis")]
pub mod cache_redis;
pub mod config;
pub mod context;
#[cfg(feature = "cron-scheduler")]
pub(crate) mod cron_scheduler;
#[cfg(feature = "database")]
pub mod database;
pub(crate) mod date_cache;
pub mod discovery;
pub mod error;
pub mod extract;
pub mod handler;
pub mod health;
pub mod introspection;
#[cfg(feature = "database")]
pub mod jobs;
#[cfg(feature = "jwks")]
pub mod jwt;
#[cfg(feature = "metrics")]
pub mod metrics;
pub mod middleware;
#[cfg(feature = "database")]
pub mod migration;
pub mod observability;
pub mod openapi;
#[cfg(feature = "database")]
pub mod pagination;
#[cfg(feature = "websocket")]
pub mod relay;
pub mod response;
pub mod router;
pub mod server;
pub mod state;
pub mod test;
pub mod testing;
#[cfg(feature = "websocket")]
pub mod websocket;
pub mod prelude {
pub use crate::app::Rapina;
pub use crate::auth::{AuthConfig, CurrentUser, TokenResponse};
pub use crate::cache::{CacheConfig, CacheMiddleware};
pub use crate::config::{
ConfigError, get_env, get_env_or, get_env_parsed, get_env_parsed_or, load_dotenv,
};
pub use crate::context::RequestContext;
pub use crate::error::{DocumentedError, Error, ErrorVariant, IntoApiError, Result};
pub use crate::extract::{
Context, Cookie, Form, Header, Headers, Json, Path, Query, State, Validated,
};
#[cfg(feature = "multipart")]
pub use crate::extract::{Field, Multipart};
pub use crate::introspection::RouteInfo;
#[cfg(feature = "database")]
pub use crate::jobs::{JobDescriptor, JobId, JobRequest, JobResult, JobRow, JobStatus, Jobs};
#[cfg(feature = "jwks")]
pub use crate::jwt::{JsonWebToken, JwksClient};
#[cfg(feature = "rate-limit")]
pub use crate::middleware::{KeyExtractor, RateLimitConfig};
pub use crate::middleware::{Middleware, Next, RequestLogConfig};
#[cfg(feature = "tower")]
pub use crate::middleware::{RapinaService, TowerLayerMiddleware};
pub use crate::observability::TracingConfig;
#[cfg(feature = "database")]
pub use crate::pagination::{
CursorKey, CursorPaginate, CursorPaginated, Paginate, Paginated, PaginationConfig,
};
#[cfg(feature = "websocket")]
pub use crate::relay::{Relay, RelayConfig, RelayEvent};
pub use crate::response::{IntoResponse, StaticStr};
pub use crate::router::Router;
pub use http::{Method, StatusCode};
pub use schemars::JsonSchema;
pub use serde::{Deserialize, Serialize};
pub use tracing;
pub use validator::Validate;
pub use rapina_macros::{Config, delete, get, job, patch, post, public, put, relay, schema};
}
pub use rapina_macros::{Config, delete, get, job, patch, post, public, put, relay, schema};
pub use http;
pub use hyper;
#[cfg(feature = "metrics")]
pub use prometheus;
pub use rust_decimal;
pub use schemars;
pub use serde_json;
pub use uuid;
pub use validator;
#[doc(hidden)]
pub use inventory;
#[doc(hidden)]
pub use openapi::openapi_schema_for;
#[cfg(feature = "websocket")]
pub use futures_util;
#[cfg(feature = "websocket")]
pub use tokio_tungstenite;
#[cfg(feature = "database")]
pub use async_trait;
#[cfg(feature = "database")]
pub use sea_orm;
#[cfg(feature = "database")]
pub use sea_orm_migration;