类型安全、全端点覆盖的异步 Rust SDK,用于访问 OpenRouter AI 网关 API。
openrouter-rs 是社区维护的 Rust SDK,当前版本 0.8.1,要求 Rust 1.85+(Edition 2024)。项目实现了 OpenRouter 官方 OpenAPI 规范中全部 51 个方法/路径,提供九大领域客户端入口:chat()、responses()、messages()、rerank()、tts()、videos()、models()、management() 及可选的 legacy()。
核心设计基于 Tokio 异步运行时与 reqwest + rustls 传输层,所有请求/响应采用强类型 Builder 模式构建。支持 SSE 流式响应(Chat、Responses、Messages)、工具调用(手动 JSON Schema 与 schemars 类型化工具)、多模态内容(图片/音频/视频/文件)以及 chain-of-thought 推理参数。管理 API 覆盖 API Key 管理、工作区、组织成员、Guardrails、Activity、Credits 等端点。
同仓库包含 openrouter-cli 伴侣工具,支持配置查看、模型发现、Key 管理和用量查询。项目具备 OpenAPI drift 检测机制与契约测试体系,通过 GitHub Actions 进行持续集成。采用 MIT 许可证。
领域客户端体系#
| 客户端入口 | 对应能力 |
|---|---|
chat() | Chat Completions(创建、流式) |
responses() | OpenRouter Responses 端点(含流式) |
messages() | Messages 端点(含 Anthropic 兼容模式) |
rerank() | 文档重排序 |
tts() | 文本转语音 |
videos() | 视频生成(发起、轮询、内容检索) |
models() | 模型发现、Embeddings |
management() | API Key、工作区、组织成员、Guardrails、Activity、Credits、Generation 元数据 |
legacy() | 旧版 /completions(需 feature flag 启用) |
安装与快速开始#
[dependencies]
openrouter-rs = "0.8.1"
tokio = { version = "1", features = ["full"] }
use openrouter_rs::{
OpenRouterClient,
api::chat::{ChatCompletionRequest, Message},
types::Role,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = OpenRouterClient::builder()
.api_key(std::env::var("OPENROUTER_API_KEY")?)
.http_referer("https://yourapp.example")
.x_title("my-openrouter-app")
.app_categories(["cli-agent"])
.build()?;
let request = ChatCompletionRequest::builder()
.model("anthropic/claude-sonnet-4")
.messages(vec![Message::new(
Role::User,
"Explain Rust ownership in plain English.",
)])
.build()?;
let response = client.chat().create(&request).await?;
println!("{}", response.choices[0].content().unwrap_or(""));
Ok(())
}
客户端构建器参数#
| 参数 | 说明 |
|---|---|
api_key | OpenRouter API Key |
management_key | 管理 Key(可选,用于管理端点) |
base_url | 自定义 API 基础 URL(可选) |
http_referer | HTTP Referer 头(可选) |
x_title | X-Title 头(可选) |
app_categories | 应用类别标签(可选) |
Feature Flags#
| Feature | 说明 |
|---|---|
default | 无额外 feature |
legacy-completions | 启用旧版 POST /completions 支持 |
CLI 伴侣工具#
cargo run -p openrouter-cli -- profile show
cargo run -p openrouter-cli -- models list --category programming
cargo run -p openrouter-cli -- keys list --include-disabled
cargo run -p openrouter-cli -- workspaces list --limit 20
cargo run -p openrouter-cli -- usage activity --date 2026-03-01
适用场景#
- Rust 后端服务统一接入多 LLM 提供商(通过 OpenRouter 网关)
- 构建 AI Agent(工具调用循环)
- 流式聊天网关(仓库内含 axum 代理网关示例)
- API Key 与工作区管理
- 文档重排序、文本转语音、视频生成等多模态任务
注意事项#
该项目为社区维护的第三方 SDK,明确声明不隶属于 OpenRouter 官方。未发现 OpenRouter 官方公开背书或推荐记录,也无公开的生产环境使用报告。