Public betaOpen source. Built in the open.Explore the beta
Architecture before checklists

OmniSwitch vs Cloudflare AI Gateway

Compare a secure self-hosted control plane, AI gateway routing, and agent protocol scope with Cloudflare AI Gateway. Evaluate the operating model before the feature list.

Updated · Public beta

Managed service. Register a8a594b; each cell records its own version and verified date. A capability review, not a benchmark.

At a glance

Choose OmniSwitch when…

  • Running the control plane in your infrastructure is a requirement.
  • Local policy checks and inspectable request data matter to your team.
  • You are prepared to own deployment and operations.

Choose Cloudflare AI Gateway when…

  • A managed operating model is your preference.
  • You already use the Cloudflare ecosystem.
  • You have checked its current feature scope, logging, and spend controls.

No scores or totals: uneven documentation coverage is not a measure of product quality.

The full capability comparison

READING THE MATRIXSupportedManaged onlyPartialNot availableNot verified
Dated AI gateway capability matrix, reviewed 11 September 2026
CapabilityOmniSwitch[1]Register a8a594bCloudflare AI Gateway[6]Managed service
Deployment & license
Self-hosted deployment
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
SQLite / Postgres storage
Supported

SQLite by default; PostgreSQL via OMNISWITCH_DATABASE_URL. Logs and keys remain SQLite-local even in the Postgres case per the project's own docs.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Kubernetes manifests / Helm chart
Supported

Kustomize manifests (Deployment/Service/ConfigMap/Secret example/PVCs/Redis) plus a Helm chart; no operator/CRDs/inference-aware routing.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Config hot reload
Supported

Config hot reload covers routes, guardrails, cache posture, circuit breaker, and shadow provider without restart.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Built-in dashboard/UI
Supported

Local dashboard for logs, metrics, prompts, providers, and guardrails.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
License
Supported

Apache-2.0.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not available

Closed managed service; not self-hostable/open-source.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
APIs & providers
OpenAI-compatible chat completions
Supported

/v1/chat/completions, streaming and non-streaming.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Managed only

Proxies OpenAI-compatible and other provider APIs.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
OpenAI-compatible embeddings
Supported

/v1/embeddings.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OpenAI Responses API
Partial

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Anthropic Messages API
Partial

/v1/messages core subset.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/messages core subset.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Native (non-passthrough) provider adapters
Partial

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Custom/generic OpenAI-compatible endpoint
Supported

Generic custom provider adapter with presets for Azure OpenAI, Ollama, vLLM, LiteLLM, DeepSeek, Together, Fireworks, and aliases.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Routing, reliability & cost
Routing & fallbacks
Supported

route-level fallbacks, max_retries, retry_backoff, retry_codes, per-attempt timeout.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Managed only

Request retries and model fallback documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Weighted / load-balanced routing
Supported

Weighted variants per route.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Conditional routing (rule/expression based)
Supported

CEL condition expressions on route variants.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Circuit breaker
Supported

Default 5 failures / 60s cooldown, configurable via gateway.circuit_breaker_failures / _cooldown.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Exact-match cache
Supported

SHA-256 request-fingerprint cache key, tenant-scoped (api_key/workspace/organization/global), SQLite-backed.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Managed only

Caches identical requests to reduce latency/cost.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Similarity cache (see scope)
Supported

NOT embedding-based. Vectorize() builds a normalized token-frequency map over lowercased, stop-word-filtered tokens; Similarity() is cosine over those token-frequency vectors. State this precisely wherever OmniSwitch's cache is compared to embedding-based semantic caches.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Documented caching is exact-match; semantic/similarity caching not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Budgets and quotas
Supported

Cost and token budgets per API key.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Managed only

Spend limits (cumulative dollar caps) documented separately from request-count rate limiting.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Rate limiting
Partial

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Managed only

Rate limiting to control scale/cost/abuse, documented separately from spend limits.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Token-based rate limits
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Identity & guardrails
API key management
Supported

Hashed API keys, bootstrap owner key, workspace-scoped keys.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OIDC / JWT identity
Supported

OIDC JWT/JWKS workload identity (identity.oidc.jwks_url/issuer/audience).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Mutual TLS
Not available

Explicitly not implemented; listed as a roadmap item, not a shipped feature.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
RBAC / policy engine (CEL or equivalent)
Supported

CEL allow/deny authorization rules plus fixed role gates.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Built-in guardrails
Supported

Built-in PII/prompt-injection/SQL-injection/toxicity/secret detectors plus custom regex rules, single-pass Rust-WASM scan with pure-Go fallback.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Managed only

Guardrails evaluate prompts/responses using @cf/meta/llama-guard-3-8b on Workers AI.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Guardrail webhooks / external connectors
Supported

HTTP webhook connectors with configurable stage/action/timeout/fail_open.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Output redaction
Supported

redact action available on output-stage guardrail rules.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Guardrails applied to streaming output
Supported

guardrails.stream_buffer defaults to true: the full SSE stream is buffered and scanned before release, which means TTFT with guardrails on is dominated by upstream generation time, not gateway overhead. Benchmark both stream_buffer=true and false and label them.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Governed agent infrastructure
MCP gateway
Supported

HTTP MCP targets with streamed SSE / streamable-HTTP pass-through.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP over stdio
Supported

Persistent stdio MCP transport targets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP federation (multiple targets)
Supported

Multiple named MCP targets, policy-gated tools/call, server-side headers.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OpenAPI-to-MCP conversion
Not available

Not implemented; explicit gap in the project's own comparison doc.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP OAuth / token exchange
Supported

RFC 8693 token exchange plus RFC 7523 JWT Bearer Grant for MCP OAuth delegation.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
A2A agent card discovery
Supported

Public A2A v1 Agent Card discovery (/.well-known/agent-card.json) plus authenticated GetExtendedAgentCard.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
A2A task methods
Partial

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Operations & evidence
Prompt management
Partial

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Evals / experiments
Partial

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OTLP telemetry export
Supported

OTel trace export (tested against Langfuse/Jaeger/Tempo).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Analytics/logging documented; OTLP export specifically not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Prometheus metrics
Supported

/metrics endpoint, gated by OMNISWITCH_PROMETHEUS_ENABLED.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Published cross-gateway benchmarks
Partial

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Not verified

Not confirmed in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Deployment & license

Self-hosted deployment

OmniSwitch[1]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Cloudflare AI Gateway[6]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

SQLite / Postgres storage

OmniSwitch[1]
Supported

SQLite by default; PostgreSQL via OMNISWITCH_DATABASE_URL. Logs and keys remain SQLite-local even in the Postgres case per the project's own docs.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Kubernetes manifests / Helm chart

OmniSwitch[1]
Supported

Kustomize manifests (Deployment/Service/ConfigMap/Secret example/PVCs/Redis) plus a Helm chart; no operator/CRDs/inference-aware routing.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Config hot reload

OmniSwitch[1]
Supported

Config hot reload covers routes, guardrails, cache posture, circuit breaker, and shadow provider without restart.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Built-in dashboard/UI

OmniSwitch[1]
Supported

Local dashboard for logs, metrics, prompts, providers, and guardrails.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

APIs & providers

OpenAI-compatible embeddings

OmniSwitch[1]
Supported

/v1/embeddings.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OpenAI Responses API

OmniSwitch[1]
Partial

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Anthropic Messages API

OmniSwitch[1]
Partial

/v1/messages core subset.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/messages core subset.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Native (non-passthrough) provider adapters

OmniSwitch[1]
Partial

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Custom/generic OpenAI-compatible endpoint

OmniSwitch[1]
Supported

Generic custom provider adapter with presets for Azure OpenAI, Ollama, vLLM, LiteLLM, DeepSeek, Together, Fireworks, and aliases.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Routing, reliability & cost

Routing & fallbacks

OmniSwitch[1]
Supported

route-level fallbacks, max_retries, retry_backoff, retry_codes, per-attempt timeout.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Managed only

Request retries and model fallback documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Weighted / load-balanced routing

OmniSwitch[1]
Supported

Weighted variants per route.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Conditional routing (rule/expression based)

OmniSwitch[1]
Supported

CEL condition expressions on route variants.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Circuit breaker

OmniSwitch[1]
Supported

Default 5 failures / 60s cooldown, configurable via gateway.circuit_breaker_failures / _cooldown.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Exact-match cache

OmniSwitch[1]
Supported

SHA-256 request-fingerprint cache key, tenant-scoped (api_key/workspace/organization/global), SQLite-backed.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Managed only

Caches identical requests to reduce latency/cost.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Similarity cache (see scope)

OmniSwitch[1]
Supported

NOT embedding-based. Vectorize() builds a normalized token-frequency map over lowercased, stop-word-filtered tokens; Similarity() is cosine over those token-frequency vectors. State this precisely wherever OmniSwitch's cache is compared to embedding-based semantic caches.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Documented caching is exact-match; semantic/similarity caching not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Rate limiting

OmniSwitch[1]
Partial

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Cloudflare AI Gateway[6]
Managed only

Rate limiting to control scale/cost/abuse, documented separately from spend limits.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Token-based rate limits

OmniSwitch[1]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Cloudflare AI Gateway[6]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Identity & guardrails

API key management

OmniSwitch[1]
Supported

Hashed API keys, bootstrap owner key, workspace-scoped keys.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OIDC / JWT identity

OmniSwitch[1]
Supported

OIDC JWT/JWKS workload identity (identity.oidc.jwks_url/issuer/audience).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Mutual TLS

OmniSwitch[1]
Not available

Explicitly not implemented; listed as a roadmap item, not a shipped feature.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

RBAC / policy engine (CEL or equivalent)

OmniSwitch[1]
Supported

CEL allow/deny authorization rules plus fixed role gates.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Built-in guardrails

OmniSwitch[1]
Supported

Built-in PII/prompt-injection/SQL-injection/toxicity/secret detectors plus custom regex rules, single-pass Rust-WASM scan with pure-Go fallback.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Managed only

Guardrails evaluate prompts/responses using @cf/meta/llama-guard-3-8b on Workers AI.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Guardrail webhooks / external connectors

OmniSwitch[1]
Supported

HTTP webhook connectors with configurable stage/action/timeout/fail_open.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Output redaction

OmniSwitch[1]
Supported

redact action available on output-stage guardrail rules.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Guardrails applied to streaming output

OmniSwitch[1]
Supported

guardrails.stream_buffer defaults to true: the full SSE stream is buffered and scanned before release, which means TTFT with guardrails on is dominated by upstream generation time, not gateway overhead. Benchmark both stream_buffer=true and false and label them.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Governed agent infrastructure

MCP gateway

OmniSwitch[1]
Supported

HTTP MCP targets with streamed SSE / streamable-HTTP pass-through.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP over stdio

OmniSwitch[1]
Supported

Persistent stdio MCP transport targets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP federation (multiple targets)

OmniSwitch[1]
Supported

Multiple named MCP targets, policy-gated tools/call, server-side headers.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OpenAPI-to-MCP conversion

OmniSwitch[1]
Not available

Not implemented; explicit gap in the project's own comparison doc.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP OAuth / token exchange

OmniSwitch[1]
Supported

RFC 8693 token exchange plus RFC 7523 JWT Bearer Grant for MCP OAuth delegation.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

A2A agent card discovery

OmniSwitch[1]
Supported

Public A2A v1 Agent Card discovery (/.well-known/agent-card.json) plus authenticated GetExtendedAgentCard.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

A2A task methods

OmniSwitch[1]
Partial

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Operations & evidence

Prompt management

OmniSwitch[1]
Partial

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Evals / experiments

OmniSwitch[1]
Partial

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OTLP telemetry export

OmniSwitch[1]
Supported

OTel trace export (tested against Langfuse/Jaeger/Tempo).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Analytics/logging documented; OTLP export specifically not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Prometheus metrics

OmniSwitch[1]
Supported

/metrics endpoint, gated by OMNISWITCH_PROMETHEUS_ENABLED.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Cloudflare AI Gateway[6]
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Published cross-gateway benchmarks

OmniSwitch[1]
Partial

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Cloudflare AI Gateway[6]
Not verified

Not confirmed in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OmniSwitch scope. The pinned register marks OpenAI Responses API, Anthropic Messages API, Native (non-passthrough) provider adapters, Rate limiting, Mutual TLS, OpenAPI-to-MCP conversion, A2A task methods, Prompt management, Evals / experiments, Published cross-gateway benchmarks as partial or unavailable. Read each source and version; compare them with the build you actually deploy.

Read unknowns carefully. “Not verified” means an evidence gap, not absence. Editions remain separate. Register a8a594b; 2 compared deployments.

A2A (Beta). SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

Running side by side

Cloudflare AI Gateway has a different platform or proxy operating model. Start a separate OmniSwitch deployment, define a representative route, and compare request behavior and operational fit. No base-URL migration guide is offered without verified compatibility on both sides.

Start a local evaluation

Sources & methodology

  1. [1]

    OmniSwitch

    Product register a8a594b. Cells reflect registered source claims, not roadmap plans or release-artifact availability; each retains its own verified date and version.

    Read 18 cited sources
  2. [6]

    Cloudflare AI Gateway

    Managed service. Capability-specific documentation and dated editorial sources remain separate from independent testing.

    Read 6 cited sources

Supported means documented within the named capability and deployment scope, not full product parity. Beta and licensed editions are shown when the register supplies a qualifier. Not verified describes an evidence gap, not absence. Claims come from the pinned register; cells have no scores or totals. This is a dated documentation review, not a performance test or a security certification. See the benchmark methodology.