sova-fs 0.1.0

Local filesystem plugin for Sova (jail root, async CRUD, walk)
Documentation

sova-fs

Local filesystem access for Sova with a jail root.

use sova::prelude::*;
use sova::{Fs, FsExt};

#[tokio::main]
async fn main() -> Result<()> {
    let mut app = App::new();
    app.install(Fs::new("./data"));

    app.get("/notes", |req: Request| async move {
        let entries = req.fs().read_dir("notes").await?;
        Ok::<_, Error>(format!("{entries:?}"))
    });

    app.listen(3000).await
}

Config: [fs] root = "./data" or SOVA_FS_ROOT. Paths are relative to the jail; .. / absolute escapes return Forbidden.