> For the complete documentation index, see [llms.txt](https://docs.k9.io/key9-identity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.k9.io/key9-identity/jsonair/2-install/2.2-dependancies.md).

# 2.2 Dependancies

JSONAir is intentionally designed to have a minimal footprint. There are two categories of dependencies: **runtime** (what the server and agent need to operate) and **build-time** (what you need to compile JSONAir from source).

***

## Runtime Dependencies

### Database

JSONAir requires a MySQL-compatible database to store API keys and configuration data.

| Engine                           | Minimum Version     |
| -------------------------------- | ------------------- |
| MySQL                            | 5.7 or later        |
| MariaDB                          | 10.4 or later       |
| Amazon Aurora (MySQL-compatible) | Any current version |

The database must be reachable by the JSONAir server over TCP. TLS connections to the database are supported and recommended for production deployments (controlled via the `MYSQL_TLS` environment variable).

### Operating System

JSONAir runs on any operating system supported by Go. It has been tested on Linux (the primary target) and macOS. Windows is not a tested or supported deployment target.

***

## Build-Time Dependencies

### Go

JSONAir is written in Go. To compile from source you need:

| Requirement  | Version         |
| ------------ | --------------- |
| Go toolchain | 1.26.2 or later |

Download the Go toolchain at <https://go.dev/dl/>.

### Third-Party Go Packages

The following packages are pulled automatically by `go mod download` and do not need to be installed manually. They are listed here for transparency and security review purposes.

| Package                          | Version | Purpose                                         |
| -------------------------------- | ------- | ----------------------------------------------- |
| `github.com/gin-gonic/gin`       | v1.12.0 | HTTP router and middleware framework            |
| `github.com/go-sql-driver/mysql` | v1.9.3  | MySQL/MariaDB database driver                   |
| `github.com/golang-jwt/jwt/v5`   | v5.3.1  | JWT generation and validation                   |
| `github.com/joho/godotenv`       | v1.5.1  | `.env` file loading for local development       |
| `github.com/tidwall/gjson`       | v1.18.0 | Fast JSON field extraction (request parsing)    |
| `github.com/tidwall/sjson`       | v1.2.5  | Fast JSON field setting (response building)     |
| `github.com/fatih/color`         | v1.19.0 | Colorized log output                            |
| `golang.org/x/time`              | v0.15.0 | Token-bucket rate limiter for the auth endpoint |

All transitive (indirect) dependencies are pinned in `go.sum` and verified at build time.

***

## No External Runtime Libraries

JSONAir compiles to a single static binary. There are no shared libraries, no runtime interpreters, and no package managers required on the server or agent host. Deploying JSONAir is as simple as copying the binary.
