kegani 0.1.0

A developer-friendly, ergonomic, production-ready Rust web framework
Documentation
//! Kegani Framework - A developer-friendly, ergonomic, production-ready Rust web framework
//!
//! # Example
//!
//! ```rust,no_run
//! use kegani::prelude::*;
//!
//! #[tokio::main]
//! async fn main() {
//!     App::new()
//!         .host("127.0.0.1")
//!         .port(8080)
//!         .run();
//! }
//! ```
//!
//! # Route Macro Example
//!
//! ```rust,ignore
//! use kegani::prelude::*;
//!
//! #[get("/api/users/{id}")]
//! async fn get_user(Path(id): Path<uuid::Uuid>) -> Result<Json<User>, AppError> {
//!     // ...
//! }
//!
//! #[post("/api/users")]
//! async fn create_user(Json(user): Json<CreateUser>) -> Result<Json<User>, AppError> {
//!     // ...
//! }
//! ```
//!
//! # Response Examples
//!
//! ```rust,ignore
//! // JSON response with CREATED status
//! Ok(Json::created(user))
//!
//! // Named status codes
//! Ok(Status::not_found())
//!
//! // Custom response with headers
//! Response::new().status(StatusCode::OK).header("X-Custom", "value").json(&data)
//! ```

pub mod app;
pub mod error;
pub mod route;
pub mod controller;
pub mod middleware;
pub mod config;
pub mod health;
pub mod metrics;
pub mod auth;
pub mod client;
pub mod cache;
pub mod db;
pub mod repository;
pub mod service;
pub mod openapi;

pub mod prelude {
    pub use crate::app::App;
    pub use crate::error::{AppError, Result};
    pub use crate::route::{Path, Query, State};
    pub use crate::controller::{Json, Status, Response, EmptyJson};
    pub use crate::middleware::{Logger, Cors, Tracing, Timeout};
    pub use crate::config::settings::{Settings, AppConfig};
    pub use crate::health::HealthCheck;
    pub use crate::metrics::{Metrics, Counter, Gauge, Histogram};
    pub use crate::auth::{JwtAuth, JwtConfig, Claims};
    pub use crate::client::{ClientGenerator, ClientType, OpenApiSpec};
    pub use crate::cache::{RedisCache, RedisConfig, KeyBuilder};
    pub use crate::db::{DbPool, DbPoolConfig};
    pub use crate::repository::{Repository, User};
    pub use crate::service::{Service, DependencyContext, ServiceBuilder};
    pub use crate::openapi::{OpenApiDoc, SwaggerUi, ReDoc};
    // Route macros
    pub use crate::route::macros::{route, get, post, put, delete, patch};
}

pub use app::App;
pub use error::{AppError, Result};
pub use route::{Path, Query, State};
pub use controller::{Json, Status, Response, EmptyJson};
pub use middleware::{Logger, Cors, Tracing, Timeout};
pub use config::Settings;
pub use health::HealthCheck;
pub use metrics::Metrics;
pub use auth::{JwtAuth, JwtConfig, Claims};
pub use client::ClientGenerator;
pub use cache::{RedisCache, RedisConfig};