TensorZero is a Rust LLMOps platform - a gateway that exists to feed a data flywheel of observability, evaluation and fine-tuning. GoModel is an AI gateway and control plane that exists to route, protect and account for traffic. They overlap on the request path, which is what we measured, and diverge almost everywhere else. One thing to know before reading further: the TensorZero GitHub repository was archived by its owners on 12 June 2026 and is now read-only, with no successor or migration path announced.
TensorZero advertises sub-millisecond gateway overhead, and its Rust core is capable of it. What the benchmark shows is what an SDK client actually sees on a keep-alive connection - and that is a different number. Measured numbers are from run 20260829-183422 (29 August 2026) of the reproducible benchmark: every gateway from its public Docker image, one at a time, same in-memory mock backend, same AWS c7i.large. Rerun it yourself with one command.
| Category | GoModel | TensorZero |
|---|---|---|
| Measured on the hot path | ||
| Latency overhead (p50, c=10) | 2.35 ms | 49.97 ms |
| Latency tail (p99) | 8.80 ms | 60.15 ms |
| Throughput at c=8 / c=16 | 3,590 / 3,610 req/s | 159 / 315 req/s |
| Throughput at c=256 | 2,962 req/s | 4,498 req/s |
| Peak RAM under load | 42.7 MB | 105.2 MB |
| Cold start to first request | 0.58 s | 0.58 s |
| Docker image (compressed) | 14.4 MB | 88.0 MB |
| Workloads served | 6/6 workloads | 2/6 (chat completions only) |
| Beyond the benchmark | ||
| Project status | Actively developed, releases every few weeks | Repository archived 12 June 2026, read-only |
| What it is | AI gateway and control plane | LLMOps platform: gateway + observability + optimization |
| Runtime | One Go binary | Rust gateway + UI container |
| Required infrastructure | None - SQLite built in; Postgres or MongoDB optional | ClickHouse for observability, Postgres for some features |
| Provider coverage | 31 providers | 19+ providers |
| API surface | OpenAI Chat, Responses, embeddings, audio, realtime + Anthropic Messages | Native /inference + OpenAI chat completions |
| Drop-in for Anthropic SDK clients | Yes | No |
| Budgets, rate limits, virtual keys | Included | Not a focus |
| Audit logs, usage & cost dashboard | Included | Inference logging in ClickHouse, UI for traces |
| Fine-tuning, RLHF, prompt optimization | Not a goal | Core feature (SFT, DPO, GEPA, DICL) |
| Evaluations and A/B experiments | Not a goal | Core feature |
| Config | Env vars + optional YAML, dashboard | tensorzero.toml functions and variants |
| License | MIT | Apache 2.0 |
Benchmark: 20,000 requests per workload at concurrency 10, five randomized trials on an AWS c7i.large (2 vCPU, 4 GiB). Read TensorZero's row with care. Its HTTP server leaves Nagle's algorithm on, so on a keep-alive connection every request after the first waits for the client's delayed ACK - roughly 40-50 ms. The p50 at c=10 is that stall, not compute, and its CPU sat at 10% while it waited. Its "peak" of 4,498 req/s appears only at c=256, where the stall is hidden behind enough parallel connections; below c=64 it is behind every other gateway in the run. SDK clients keep connections alive, so the c=10 number is the one users get today. TensorZero 2026.6.0 also exposes only Chat Completions on its OpenAI-compatible surface, so Responses and Anthropic Messages workloads are recorded as failures.
These are not two answers to the same question. Pick by the problem you are solving.
Migrating off TensorZero: clients that use its OpenAI-compatible chat completions endpoint move to GoModel with a base-URL change. Code on the native /inference API and the TOML function catalog needs to move to plain OpenAI or Anthropic calls, with GoModel aliases and virtual models standing in for variants and fallbacks.
Benchmarks are an argument; your traffic is the proof. GoModel speaks the OpenAI and Anthropic APIs natively, so pointing an existing app at it is a base-URL change.
docker run --rm -p 8080:8080 \
-e LOG_FORMAT=text \
-e OPENAI_API_KEY="your-openai-key" \
enterpilot/gomodelfrom openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="your-gomodel-key",
)Full setup, providers, and configuration live in the documentation. Questions? Ask on Discord or book a 30-minute call.