http_srv/lib.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
//! Http Server Crate
//!
//! This crate contains all the libraries necessary to run an HTTP Server
//!
//! # Example
//! ```rust,no_run
//! use http_srv::prelude::*;
//!
//! let config = ServerConfig::default();
//!
//! let mut handler = Handler::new();
//! handler.add_default(HttpMethod::GET, handler::cat_handler);
//! handler.get("/", handler::root_handler);
//! handler.get("/hello", |req: &mut HttpRequest| {
//! let name = req.param("name").unwrap_or("friend");
//! let msg = format!("Hello {name}!");
//! req.respond_str(&msg)
//! });
//!
//! let mut server = HttpServer::new(config);
//! server.set_handler(handler);
//! server.run();
//! ```
#![deny(
clippy::unwrap_used,
clippy::panic,
clippy::expect_used,
unused_must_use
)]
#![warn(clippy::pedantic)]
#![allow(clippy::missing_errors_doc, clippy::module_name_repetitions)]
mod log;
pub mod server;
#[doc(hidden)]
pub mod prelude {
pub use http::{
request::{
handler::{self, AuthConfig, Handler},
HttpRequest,
},
response::*,
*,
};
pub(crate) use crate::log::prelude::*;
pub use crate::server::{HttpServer, ServerConfig};
}
use prelude::*;
/// Result type for the [`http_srv`](self) crate
///
/// It serves as a shortcut for an [`std::result::Result`]<T,[`ServerError`]>
pub type Result<T> = std::result::Result<T, HttpError>;
pub mod client;