lib-humus

Crates.iolib-humus
lib.rslib-humus
version0.4.0
created_at2024-02-11 12:48:58.164726+00
updated_at2025-08-15 12:42:29.497674+00
descriptionHelps creating configurable frontends for humans and computers using axum, Tera and toml.
homepagehttps://codeberg.org/slatian/lib-humus
repositoryhttps://codeberg.org/slatian/lib-humus
max_upload_size
id1135818
size111,038
Slatian (slatian)

documentation

https://docs.rs/lib-humus

README

lib-humus 🌱

Helps creating frontends for humans and computers using axum, 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

⚠️ As of version 0.4 this feature is deprecated, please use the lib-humus-configuration crate instead.

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 and 0.4 are compatible with axum 0.8 and axum-extra 0.10
  • 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

Or you can build the offline documentation yourself:

cargo doc -F full
firefox target/doc/lib_humus/index.html

License

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

Commit count: 0

cargo fmt