respan-gateway

respanaiApache-2.0活跃维护

用 Rust 写的开源 LLM 网关,把 OpenAI、Anthropic、Gemini 等各家模型统一到一个接口,任意 SDK 和工具都能直接接入,省去多厂商适配的麻烦。

Open-source LLM gateway in Rust. One endpoint for OpenAI, Anthropic, Gemini and every other vendor. Any SDK, any model, any tool.

v0.3.0发布于 2026-10-25 06:27 UTC677star +75 / 7 天107fork同步于 2026-11-10 23:55 UTC

怎么上手

由 README 提炼,执行前请确认
pip install respan-gateway
export OPENAI_API_KEY=sk-...
respan-gateway
硬件要求按 README 说明

README 未说明硬件要求,仅说明是单个 Rust 二进制,内存占用约 31 MB

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Rust 写的开源 LLM 网关,一个端点接入 OpenAI、Anthropic、Gemini 等所有厂商

用 Rust 写的开源 LLM 网关,把 OpenAI、Anthropic、Gemini 等各家模型统一到一个接口,任意 SDK 和工具都能直接接入,省去多厂商适配的麻烦。

核心能力

  • 用 OpenAI、Anthropic、Gemini 任一 SDK 调用任意厂商模型,自动翻译格式
  • 支持实时语音、图像、语音合成、转写、嵌入和视频等多模态能力
  • 把 MCP 服务器和内置工具接入普通聊天请求,任意模型都能用
  • 命名路由支持回退、重试、按最便宜或最快选择,以及对冲请求
  • 内置实时请求日志,记录成本、延迟和 token,并可接入 Respan 追踪

容易踩的坑

需要设置对应厂商的 API key,只有设置了 key 的厂商才会成为可用 provider;默认只监听本机回环地址,对外监听时必须配置 client key;Docker 运行时需额外传入 RESPAN_CLIENT_KEYS。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

3 个版本v0.3.0
  1. v0.3.0最新正式版2026-10-25 · 2026-10-25 06:27 UTC

    Highlights

    • New vendors: EmpirioLabs AI, DeepInfra, Perplexity, Cerebras; Mistral transcriptions, speech and realtime; Gemini image clients; the Exa tool vendor.
    • Multimodal embeddings: an embedding input can be parts (texts, images, videos).
    • Install on common Linux: the Linux wheels are manylinux_2_28, so pip on Ubuntu 20.04+, Debian 11+ and Amazon Linux 2023 gets a wheel.
    • Docker: ghcr.io/respanai/respan-gateway:latest (amd64 and arm64). Listening beyond localhost, it needs a client key: -e RESPAN_CLIENT_KEYS=....

    Breaking

    • The systemone format is now decisions: a config naming it must change.
    • Library crates: a vendor's dialect now lives in respan-gateway-http (Dialect, Dialected), replacing those of conversation-http, media-http and decision-http.

    What's Changed

    New Contributors

  2. v0.2.02026-10-20 · 2026-10-20 06:53 UTC
    查看更新说明
  3. v0.1.02026-10-19 · 2026-10-19 23:10 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Respan Gateway is a single Rust binary that sits between your code and every AI API. Point the SDK you already use at it, and it connects you to everything: chat models, images, video and voice from every major provider; tools for any model, from web search and memory to code sandboxes and any MCP server; and traffic control (format translation, fallback, retries and hedged requests), with a live log of every call. ▶ Watch the demo

    Key features

    • Any client, any model OpenAI Chat Completions, OpenAI Responses, Anthropic Messages and Gemini API clients can all call any model, with streaming, tools, images and reasoning translated.

    • Multimodal Realtime voice across vendors (an OpenAI Realtime client talks to Gemini Live, and back), plus images, speech, transcription, embeddings and video through OpenAI's or Gemini's APIs, to any vendor that has them.

    • MCP tools for every model Put MCP servers or built-in tool vendors behind the gateway, from web search to code sandboxes. It runs their tools inside chat requests, so a plain chat call can use them, whatever the client or model.

    • Traffic control Named routes, globs and provider/model; fallback, retries, cheapest or fastest; and hedged requests that race a slow call against a second provider.

    • Observability A live request log with cost, latency and tokens for every call, and traces in Respan, where span-02 analyzes how your agents behave.

    • Best-in-class performance 0.07 ms of added latency, 56,000 requests per second and 31 MB of memory in our benchmarks: about 3× the throughput of the next fastest gateway we tested.

    • Write your own plugin in minutes Every feature above is a plugin, built on the same public Rust API you can use: one trait with four hooks. Start from the plugin guide or an example such as guardrails, PII masking or billing.

    Quickstart

    1. Install

    pip install respan-gateway
    

    Or cargo install respan-gateway, or a GitHub release.

    2. Run it with your keys

    export OPENAI_API_KEY=sk-...
    respan-gateway
    

    No config file needed: every vendor whose key is set becomes a provider.

    3. Call any model from any SDK

    from anthropic import Anthropic
    
    client = Anthropic(base_url="http://localhost:8080", api_key="unused")
    reply = client.messages.create(
        model="gpt-6-luna", max_tokens=256,
        messages=[{"role": "user", "content": "Hello from the Anthropic SDK"}])
    print(reply.content[0].text)
    

    The web UI is at localhost:8080/ui/. Next: configuration and MCP tools.

    Other ways to run it

    • Python, in-process — Run the gateway inside your Python app, with no server.
    • Embed in Rust — Mount the gateway in your own Rust service.
    • Docker — docker run -p 8080:8080 -e OPENAI_API_KEY -e RESPAN_CLIENT_KEYS=<a key of yours> ghcr.io/respanai/respan-gateway on any container host; listening beyond localhost, it needs a client key.

    Performance

    Respan GatewayBifrostPortkeyLiteLLM (1 worker)
    Added latency (p50)0.07 ms0.16 ms0.17 ms4.34 ms
    Throughput56,734/s18,182/s4,187/s268/s
    Memory31 MB488 MB350 MB418 MB
    1k streams, success100%92–100%—79%
    1k streams, memory128 MB688 MB—493 MB
    p99, 5% slow calls105 ms2,002 ms2,003 ms2,024 ms

    Configuration

    You don't need a config file to start. When you want more, run respan-gateway init for a commented gateway.toml. One file sets up keys, providers, traffic control, tools and tracing:

    client_keys = [{ name = "app", key = "env:APP_KEY" }]   # who may call the gateway
    
    [providers.openai]                      # a built-in vendor: just add a key
    vendor = "openai"
    key = "env:OPENAI_API_KEY"
    
    [providers.anthropic]
    vendor = "anthropic"
    key = "env:ANTHROPIC_API_KEY"
    
    [providers.local]                       # any OpenAI-compatible endpoint
    formats = ["openai-chat"]
    base_url = "http://localhost:8000/v1"
    
    [routes.smart]                          # clients ask for "model": "smart"
    to = ["anthropic/claude-haiku-5-5", "openai/gpt-6-luna"]
    hedge = "800ms"                         # race the second if the first is slow
    
    [tools.search]                          # web search as MCP tools
    vendor = "linkup"
    key = "env:LINKUP_API_KEY"
    
    [plugins.tool_loop]                     # every model can use them
    servers = ["search"]
    
    [plugins.respan]                        # trace every call in Respan
    key = "env:RESPAN_API_KEY"
    

    respan-gateway check validates it, and --watch or SIGHUP reloads it without a restart. Without client keys, the gateway answers only on loopback and refuses to start on a public address.

    Reference: configuration · vendors · tool vendors · MCP and tools · gateway.example.toml

    Supported API formats

    Call the gateway in any format on the left, and it reaches every provider on the right, translating between them.

    Your code callsIt can reach
    ChatOpenAI Chat CompletionsOpenAI ResponsesAnthropic MessagesGemini API any chat model, whichever of the four formats it speaks
    Realtime voiceOpenAI RealtimeGemini Live OpenAI ⇄ Gemini voice; Mistral for transcription
    ImagesOpenAI ImagesGemini Images
    Speech, transcriptionOpenAI SpeechOpenAI Transcriptions
    EmbeddingsOpenAI Embeddings
    VideoOpenAI VideosGemini Veo Google Veo
    DecisionsRespan DecisionsTypeSafe System One
    ToolsMCP your MCP servers and tool vendors
    Anything elseA vendor's own APIRelayed to that vendor untouched

    Each vendor's formats are in vendors, and the translation details in each format's README: chat, media, realtime and decisions.

    Plugins

    Everything the gateway does is a plugin on one public Rust API.

    Models · 16 providers and any compatible endpoint, each reachable from any client format. All vendors →

    Tools · any MCP server, plus built-in tools for search, browsing, code, documents and memory, usable from any model. All tool vendors →

    Traffic control · named routes, fallback, retries, hedged requests, and the cheapest or fastest provider.

    Observability · a live request log, the cost of every call, and traces in Respan.

    Your framework · anything with a base URL. Guides for the OpenAI SDK, Anthropic SDK, Google GenAI, Vercel AI SDK, LangChain, Pydantic AI, Pi, OpenCode and more.

    Your own plugin · start from the plugin guide or an example: guardrails, PII masking, billing, an LLM judge.

    Built in: routing · tool-loop · mcp-router · pricing · respan · responses · credentials

    Community

    Contributions are welcome. CONTRIBUTING.md covers the architecture, building and tests, and a new vendor is usually one file. Start with a good first issue, ask in Discussions or Discord, and report security issues as SECURITY.md describes.

    Roadmap: what we're building next is in issues. Missing a vendor, format or feature? Ask for it.

    Want it managed? Respan runs the gateway for you, with dashboards, evals and span-02.

    License

    Dual-licensed under MIT or Apache-2.0, at your option.