xin

Xin Public Beta

Bring your nginx config. Upgrade the engine.

A web server and reverse proxy that reads your nginx configuration, answers to the commands you already use, and installs beside the server you are running today.

CONFIG / TRAFFICREADY
NGINX.CONF XIN TRAFFIC
READVALIDATESERVE
Public BetaWeb server + reverse proxy
1 lineInstall beside nginx
11Published platforms
RustMemory-safe traffic path

A new server. A boring migration.

Change the binary. Keep the operation.

xin fits the configuration, the commands, and the rollout habits already running your edge.

Same config.

Servers, locations, upstreams, rewrites, variables, TLS, caching and access controls come across as written. Anything outside the supported surface is refused at load, never silently ignored.

Same workflow.

Test, dump, reload and reopen logs with the commands your automation already sends. xin -t -c /etc/nginx/nginx.conf tells you where you stand in one step.

Easy way back.

Install beside nginx, run it on a spare port, compare the traffic that matters to you, and move the listener when you are satisfied. Nothing is removed to try it.

Measured, and published whole

Ahead on TLS. Honest on the rest.

xin serves TLS traffic faster than nginx and spends less CPU per request doing it. On cleartext HTTP nginx is still ahead, so that bar is on the chart too.

Run it yourself →
xin 0.1.5-preview vs nginx 1.22.13-byte body
TLS proxy — requests/sxin +64%
xin
1,074,941
nginx
653,916
TLS proxy — CPU µs/requestxin 0.91x, lower is better
xin
14.19
nginx
15.60
Cleartext proxy — requests/snginx +24%
xin
958,529
nginx
1,193,058
nginx is green. xin is blue. Measured on GCE c4a-standard-16 (Axion ARM, 16 vCPU).

One binary, the whole edge

Serve. Proxy. Balance. Protect.

Static files, reverse proxying, load balancing, TLS, caching, rate limits, authentication, FastCGI, uwsgi, SCGI, gRPC and stream TCP. A memory-safe core handles the traffic path; established cryptography handles TLS.

Next step

Bring us your config.

xin is in Public Beta. Tell us what you run, and we will tell you what it takes to run it here.

xin /zɪn/
“xin isn’t nginx”