Skip to main content

lfsx_server/
lib.rs

1pub mod auth;
2pub mod config;
3pub mod error;
4pub mod locks;
5pub mod metrics;
6pub mod model;
7pub mod namespace;
8pub mod routes;
9pub mod state;
10pub mod storage;
11
12use std::sync::Arc;
13
14use axum::Router;
15
16use crate::auth::Authorizer;
17use crate::config::Config;
18use crate::locks::LockStore;
19use crate::metrics::Metrics;
20use crate::state::AppState;
21use crate::storage::LocalStore;
22
23pub fn app(config: Config) -> Router {
24    let store = LocalStore::new(config.storage_root.clone());
25    let locks = LockStore::new(config.storage_root.clone());
26    let authorizer = Authorizer::new(&config.auth);
27
28    routes::router(Arc::new(AppState {
29        store,
30        locks,
31        config,
32        authorizer,
33        metrics: Metrics::new(),
34    }))
35}