thanix 0.1.0

A yaml-to-rust code generator for generating Rust code from yaml config files e.g. as found in openAPI.
```
████████╗██╗  ██╗ █████╗ ███╗   ██╗██╗██╗  ██╗
╚══██╔══╝██║  ██║██╔══██╗████╗  ██║██║╚██╗██╔╝
   ██║   ███████║███████║██╔██╗ ██║██║ ╚███╔╝
   ██║   ██╔══██║██╔══██║██║╚██╗██║██║ ██╔██╗
   ██║   ██║  ██║██║  ██║██║ ╚████║██║██╔╝ ██╗
   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝╚═╝  ╚═╝

```

## Welcome to Thanix!

Thanix is an experimental cli application written in Rust for generating Rust code from yaml schema files like they are
found as openAPI schemas.

## Installation

Be aware that Thanix currently is only developed on and for Linux distributions.<br>
Support for other operating systems may be available in the future, but currently though it is not guaranteed to work.

### Building from source

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:

1. Download the source code. To do so, run this command in your Terminal:

```bash
git clone git@github.com:The-Nazara-Project/Thanix.git
```

This will create a new directory called `Thanix`, move into it.

2. Run the application directly

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.**

```bash
cargo run -- --input-file $PATH_TO_YOUR_YAML --uri $URI_TO_YOUR_API
```

This may look like this:

```bash
cargo run -- --input-file ./api_config.yaml --uri https://demo.netbox.dev
```

> **NOTE:** Make sure that you **do not end your URI with a slash (/)**. As this would mangle the API paths.

This step will result in your `thanix_client` being generated.

To view the next steps please scroll **down to the Usage section**.

Optional:

3. Install Thanix using `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:

```bash
cargo install --path .
```

This will install Thanix onto your system and it can be executed by simply running `thanix` in your terminal.

### Install Thanix using Cargo

Thanix is also published on [crates.io](https://crates.io).

To install it simply run:

```bash
cargo install thanix
```

### Install Cargo as a distribution package (TBA)

We are working on building packages for a variety of Linux distributions starting with `openSUSE Tumbleweed`.

We will update you as soon as we have news.

## Usage

After you have installed Thanix in a way you see fit, you use it by passing it **two mandatory parameters** like this:

```bash
thanix --input-file $YOUR_API_YAML --uri $YOUR_API_URI
```

- The `--input-file` parameter is a 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.
- The `--uri` is the URI to your API in a format like this: `https://demo.netbox.dev`.
  **Make sure this URI does not end with a `/`**