Documentation
xin is an HTTP web server, reverse proxy, load balancer and Kubernetes Gateway controller, written in Rust. It reads the configuration format you already use.
In a hurry? Install, then point it at the config you already run — it reads the file and reports, changing nothing:
curl -fsSL https://xinproxy.com/install.sh | sh
xind -t -c /etc/nginx/nginx.conf Guides
Getting started Install, test your existing config, and switch over — in that order, with a rollback at every step. Command line Every xind flag. The interface is nginx's, so -t, -s reload and -c work the way your scripts already expect. Configuration compatibility What xin runs, what it accepts with a warning, and what it refuses at startup rather than doing quietly wrong. Kubernetes Gateway Install the controller, create a GatewayClass and route traffic — 32 of 33 core conformance tests. Memory safety Which crates forbid unsafe, where the remaining unsafe lives, and the nginx CVE classes that follow from it. Releases & downloads Packages, tarballs, architectures, glibc floors and the signing key.
The one rule worth knowing first
A configuration directive has exactly three possible fates in xin, and there is no fourth:
- It runs. xin reproduces the behaviour, including the surprising parts of it.
- It runs, and the difference is stated. Where xin's behaviour is not identical, the difference is catalogued and reported at load, with the file and line.
- It refuses to start. A directive xin cannot honour is a startup error naming the file, the line and the reason — never a silent no-op.
Nothing is accepted, ignored and left unmentioned. That is what makes
xind -t against your production config a meaningful answer
rather than an optimistic one.