<p align="center">
<img src="assets/logo-no-background.png" alt="The Nazara Logo" style="width:60%; max-width:300px;" />
</p>
**Welcome to Thanix' documentation hub!**
Thanix is a code generator that produces idiomatic Rust API client libraries from [OpenAPI v3](https://spec.openapis.org/oas/v3.0.3) YAML schemas.
Originally developed for the [Nazara](https://codeberg.org/nazara-project/Nazara) system registration tool to create an API
client crate for the IPAM application [NetBox](https://netboxlabs.com/docs/netbox/), Thanix is capable of creating
API client libraries for any OpenAPI-compliant API spec.
This documentation is split by target group. Check the navigation bar on the left hand side for all pieces of
information that are relevant for you.
```admonish bug title="Found a bug?"
Please [Open an issue on Codeberg](https://codeberg.org/nazara-project/Thanix/issues).
```
## Features
- **Struct generation**: Creates `#[derive(Serialize, Deserialize, Debug, Default, Clone)]` Rust structs from OpenAPI schema components
- **Path function generation**: Creates type-safe API functions for all HTTP methods (GET, POST, PUT, PATCH, DELETE, etc.)
- **Query parameter support**: Generates typed query parameter structs with `serde_qs` serialization
- **Response enums**: Generates response enums discriminated by HTTP status code
- **Auth scheme detection**: Automatically detects and generates appropriate auth header code from `securitySchemes`
- **Flexible client**: Generated `ThanixClient` supports any auth mechanism via `auth_header_value`
- **Configurable PATCH prefix**: Customize which schema prefix triggers optional-field generation for partial updates
- **Workaround mode**: Opt-in mode to make all response fields nullable for APIs with unreliable null behavior
```admonish warning
Thanix was developed on and for Linux systems. We have currently no plans to support Windows or MacOS.
If you would like to add support for this, please open a discussion issue in our repository.
```
## Distribution Channels
This is an overview of channels through which you can get Thanix.
|[`crates.io`](https://crates.io/crates/Thanix)|`v1.1.0`|yes|
|openSUSE Tumbleweed|--coming soon--|--coming soon--|