lib-humus 0.3.0

Helps creating configurable frontends for humans and computers using axum, Tera and toml.
Documentation
# lib-humus 🌱

Helps creating frontends for humans and computers using axum, [Tera](https://keats.github.io/tera/) and toml.

Update: Consider the interface stable it hasn'T changed in quite a while because it just workedâ„¢.

> Where does the name come from?

It's something to grow new projects on and it includes ter(r)a, so humus it is.

## What does it do?

### Render Templates

The `HumusEngine` uses Tera and the axum framework to produce http responses with minimal code overhead in the main logic. It is able to serve both a UI and an API from one datastructure.

Use the `axum-view` (enabled by default) feature flag for this. The `axum-view+cookie` feature flag enables additional cookie setting logic.

### Load Templates

For templates to be useful they have to make it from disk into memory. The `TemplateEngineLoader` takes care of loading a whole directory of configurable templates at once.

It is behind the enabled by default `tera-loader` feature flag.

### Load Toml

Coming up with a sophisticated configuration system is fun, but serde and a toml file is usually more than enought. The `read_toml_from_file()` function makes this even easier. Filepath in, parsed struct or Error out.

It is behind the enabled by default `toml` feature flag.

## Compatibility

* lib-humus 0.3 is compatible with [axum 0.8]https://github.com/tokio-rs/axum/releases/tag/axum-v0.8.0 and [axum-extra 0.10]https://github.com/tokio-rs/axum/releases/tag/axum-extra-v0.10.0
* lib-humus 0.2 is compatible with [axum 0.7]https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.0
* lib-humus 0.1 is made to be compatible with axum 0.6

## Documentation

[You can find the documentation over on docs.rs](https://docs.rs/lib-humus/)

Or you can build the offline documentation yourself:
```sh
cargo doc -F full
firefox target/doc/lib_humus/index.html
```

## License

This project is licensed under an [AGPL-3.0-or-later License](LICENSE) this is to ensure that it isn't used in proprietary software.