Crate fregate

source ·
Expand description

Developing an HTTP server requires to add code for logging, configuration, metrics, health checks etc. This crate aims to solve these problems providing user with Application builder for setting up HTTP service.

This project is in progress and might change a lot from version to version.

Re-exports

pub use axum;
pub use config;
pub use hyper;
pub use thiserror;
pub use tokio;
pub use tonic;
pub use tower;
pub use tower_http;
pub use tracing;
pub use valuable;

Modules

fregate Errors
Extensions traits for different crates
Trait to implement custom Health checks
Fregate FormatEvent trait implementation
Tools initialise logging and tracing
Middlewares to be used with axum::Router
Tool to implement reverse-proxy logic in axum::Router
Collection of syntax-sugar-like functions
Instrument for logging

Structs

AppConfig reads and saves application configuration from different sources
AppConfig builder to set up multiple sources
Application to set up HTTP server with given config AppConfig
Used as dummy structure to read AppConfig without private field
configuration for logs and traces

Enums

Enum to specify configuration source type:

Functions

Reads AppConfig and init_tracing. Return Error if fails to read AppConfig or init_tracing. Return Error if called twice because of internal call to tracing_subscriber::registry().try_init().
Return rendered metrics
Initialise PrometheusRecorder