lib-humus 0.2.1

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.

⚠️ Consider the interface unstable until a version that says that it is stable is released.

> 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.2 is compatible with axum 0.7
* 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.