http-fs
Features
actix
- Enables actix-web
integration.
hyper
- Enables hyper
integration.
Usage
Actix
use http_fs::config::{self, StaticFileConfig};
use http_fs::{StaticFiles};
use std::path::Path;
pub struct DirectoryConfig;
impl StaticFileConfig for DirectoryConfig {
type FileService = config::DefaultConfig;
type DirService = config::DefaultConfig;
fn handle_directory(&self, _path: &Path) -> bool {
true
}
}
fn main() {
actix_web::server::new(|| actix_web::App::new().handler("/", StaticFiles::new(DirectoryConfig)).finish()).bind("127.0.0.1:8080").unwrap().run();
}
Hyper
use http_fs::config::{self, StaticFileConfig};
use http_fs::{StaticFiles};
use futures::Future;
use std::path::Path;
#[derive(Clone)]
pub struct DirectoryConfig;
impl StaticFileConfig for DirectoryConfig {
type FileService = config::DefaultConfig;
type DirService = config::DefaultConfig;
fn handle_directory(&self, _path: &Path) -> bool {
true
}
}
fn main() {
let addr = ([127, 0, 0, 1], 3000).into();
let static_files = StaticFiles::new(DirectoryConfig);
let server = hyper::Server::bind(&addr).serve(static_files).map_err(|e| eprintln!("server error: {}", e));
println!("Listening on http://{}", addr);
hyper::rt::run(server);
}