| Crates.io | thanix |
| lib.rs | thanix |
| version | 1.0.0 |
| created_at | 2024-01-17 19:39:40.031386+00 |
| updated_at | 2025-09-16 10:15:10.556046+00 |
| description | A yaml-to-rust code generator for generating Rust code from yaml config files e.g. as found in openAPI. |
| homepage | |
| repository | https://github.com/The-Nazara-Project/Thanix |
| max_upload_size | |
| id | 1103345 |
| size | 115,471 |
████████╗██╗ ██╗ █████╗ ███╗ ██╗██╗██╗ ██╗
╚══██╔══╝██║ ██║██╔══██╗████╗ ██║██║╚██╗██╔╝
██║ ███████║███████║██╔██╗ ██║██║ ╚███╔╝
██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██╔██╗
██║ ██║ ██║██║ ██║██║ ╚████║██║██╔╝ ██╗
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝
Thanix is an experimental cli application written in Rust for generating Rust code from yaml schema files like they are found as openAPI schemas.
[!Note] Thanix is primary developed for Linux distributions. Windows and MacOS support are provided "as-is".
Building from source provides you with the most recent updates and changes to Thanix. However, be aware that these may be unstable, so downloading a tagged release is advised.
Also, make sure you have the Rust programming language and Cargo installed.
To build Thanix from source you need to follow these steps:
git clone git@github.com:The-Nazara-Project/Thanix.git
This will create a new directory called Thanix, move into it.
You can now run Thanix using the cargo run command. However, this process may take longer and may feel less
comfortable.
Do not forget to pass the required CLI parameters to Thanix when doing this.
cargo run -- $PATH_TO_YOUR_YAML --output $PATH_TO_YOUR_OUTPUT
This may look like this:
cargo run -- ./api_config.yaml --output thanix_client/
This step will result in your thanix_client being generated.
To view the next steps please scroll down to the Usage section.
Optional:
cargo install.You can also install the crate on your system, so you always have it available. To do so, run this command while in the Thanix project directory:
cargo install --path .
This will install Thanix onto your system and it can be executed by simply running thanix in your terminal.
Thanix is also published on crates.io.
To install it simply run:
cargo install thanix
We are working on building packages for a variety of Linux distributions starting with openSUSE Tumbleweed.
You can install Thanix for openSUSE Tumbleweed using these steps:
sudo zypper ar https://download.opensuse.org/repositories/home:/ByteOtter:/nazara-project/openSUSE_Tumbleweed/home:ByteOtter:nazara-project.repo
8m
sudo zypper ref
sudo zypper install Thanix
Zypper should now install Thanix for you.
NOTE: The repository location is temporary and will be changed once Thanix is out of beta. If you do not wish to deal with this, we suggest you install Thanix using one of the methods listed above. Thank you for understanding.
thanix-x86_64-pc-windows-msvc.zip.Extract the .zip somewhere convenient.
(Optional) Add the directory containing thanix.exe to your PATH environment variable:
Win + X -> System -> Advanced system settings -> Environment Variables -> Path -> Add new path.thanix.exe input.yaml -o my_crate
[!Warning] MacOS release workflow is very experimental and cannot be easily verified at this time.
thanix-86_64-apple-darwin.tar.gztar -xzf thanix-x86_64-apple-darwin.tar.gz
PATH, e.g /usr/local/bin:mv thanix /usr/local/bin/
chmod +x /usr/local/bin/thanix
# Example usage
thanix input.yaml -o output.rs
After you have installed Thanix in a way you see fit, you use it by passing it two mandatory parameters like this:
thanix $YOUR_API_YAML --output thanix_client/
$YOUR_API_YAML parameter is the path to your .yaml-file you want to use as an input. This is usually the API
schema file your want to generate a client for.--output parameter is optional and refers to the path where thanix' output should be put. If omitted, it will
create a output directory in your current wokring directory.--workaround flag can be set to allow Thanix to create a strongly opinionated version of thanix_client. This is
primarily used to avoid serialization errors when handling API object responses which we have confirmed to diverge from the
values expected according to the schema.[!Note] The
--workaroundflag is only useful when creating a client forNetBox. In other cases it might produce a broken or unsafe API client by weakening response data validation.