6 releases (breaking)

0.4.0 Jan 26, 2025
0.3.1 Jan 24, 2025
0.2.1 Jan 21, 2025
0.1.0 Dec 25, 2024
0.0.1 Sep 29, 2024

#960 in HTTP server

Download history 2/week @ 2024-12-05 4/week @ 2024-12-12 145/week @ 2024-12-19 54/week @ 2024-12-26 2/week @ 2025-01-02 2/week @ 2025-01-09 190/week @ 2025-01-16 238/week @ 2025-01-23 13/week @ 2025-01-30 13/week @ 2025-02-06

454 downloads per month

Apache-2.0

140KB
4K SLoC

Stefn

Fast and cool meta framework.

Simple and easy.

mod dashboard;
mod website;

use axum::{middleware::from_fn_with_state, Router};
use hyper::{
    header::{AUTHORIZATION, CONTENT_TYPE},
    Method,
};

use stefn::{
    auth::{login_required_middleware, sessions_middleware},
    service::Service,
    state::WebsiteState,
};

use tower_http::{
    cors::{Any, CorsLayer},
    services::ServeDir,
};

pub fn create_service() -> Service {
    Service::website("WEB_", routes)
}

fn routes(state: WebsiteState) -> Router<WebsiteState> {
    Router::new()
        .merge(dashboard::routes(state.clone()))
        .layer(from_fn_with_state(state.clone(), login_required_middleware))
        .merge(website::routes(state.clone()))
        .layer(from_fn_with_state(state.clone(), sessions_middleware))
        .nest_service("/dist", ServeDir::new("dist"))
        .layer(
            CorsLayer::new()
                .allow_methods([Method::GET, Method::POST, Method::PUT])
                .allow_headers([CONTENT_TYPE, AUTHORIZATION])
                .allow_origin(Any),
        )
        .with_state(state)
}
use my_app::create_service;
use stefn::orquestrator::ServicesOrquestrator;

fn main() {
    ServicesOrquestrator::default()
        .load_environment_variables()
        .set_config_from_env()
        .enable_migrations()
        .add_service(create_service())
        .init_dev_tracing()
        .run();
}

Dependencies

~70–105MB
~2M SLoC

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy