[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70522":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},70522,"kiro.rs","hank9999\u002Fkiro.rs","hank9999","A Kiro Client in Rust",null,"https:\u002F\u002Fgithub.com\u002Fhank9999\u002Fkiro.rs","Rust",1644,442,7,15,0,35,66,384,105,20.94,false,"main","2026-06-12 02:02:34","# kiro-rs\n\n一个用 Rust 编写的 Anthropic Claude API 兼容代理服务，将 Anthropic API 请求转换为 Kiro API 请求。\n\n---\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd>\n\u003Cb>特别感谢\u003C\u002Fb>：\u003Ca href=\"https:\u002F\u002Fco.yes.vg\u002Fregister?ref=hank9999\">YesCode\u003C\u002Fa> 为本项目提供了 AI API 额度赞助, YesCode 作为一家低调务实的 AI API 中转服务商 \u003Cbr>\n长期以来提供稳定高可用的服务, 如您有意体验, 请点击链接注册体验 → \u003Ca href=\"https:\u002F\u002Fco.yes.vg\u002Fregister?ref=hank9999\">立即访问\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n#### [LINUX DO 讨论帖](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F1571986)\n\n## 免责声明\n\n本项目仅供研究使用, Use at your own risk, 使用本项目所导致的任何后果由使用人承担, 与本项目无关。\n本项目与 AWS\u002FKIRO\u002FAnthropic\u002FClaude 等官方无关, 本项目不代表官方立场。\n\n## 注意！\n\n因 TLS 默认从 native-tls 切换至 rustls，你可能需要专门安装证书后才能配置 HTTP 代理。可通过 `config.json` 的 `tlsBackend` 切回 `native-tls`。\n如果遇到请求报错, 尤其是无法刷新 token, 或者是直接返回 error request, 请尝试切换 tls 后端为 `native-tls`, 一般即可解决。\n\n**Write Failed\u002F会话卡死**: 如果遇到持续的 Write File \u002F Write Failed 并导致会话不可用，参考 Issue [#22](https:\u002F\u002Fgithub.com\u002Fhank9999\u002Fkiro.rs\u002Fissues\u002F22) 和 [#49](https:\u002F\u002Fgithub.com\u002Fhank9999\u002Fkiro.rs\u002Fissues\u002F49) 的说明与临时解决方案（通常与输出过长被截断有关，可尝试调低输出相关 token 上限）\n\n## 功能特性\n\n- **Anthropic API 兼容**: 完整支持 Anthropic Claude API 格式\n- **流式响应**: 支持 SSE (Server-Sent Events) 流式输出\n- **Token 自动刷新**: 自动管理和刷新 OAuth Token\n- **多凭据支持**: 支持配置多个凭据，按优先级自动故障转移\n- **负载均衡**: 支持 `priority`（按优先级）和 `balanced`（均衡分配）两种模式\n- **智能重试**: 单凭据最多重试 3 次，单请求最多重试 9 次\n- **凭据回写**: 多凭据格式下自动回写刷新后的 Token\n- **Thinking 模式**: 支持 Claude 的 extended thinking 功能\n- **工具调用**: 完整支持 function calling \u002F tool use\n- **WebSearch**: 内置 WebSearch 工具转换逻辑\n- **多模型支持**: 支持 Sonnet、Opus、Haiku 系列模型\n- **Admin 管理**: 可选的 Web 管理界面和 API，支持凭据管理、余额查询等\n- **多级 Region 配置**: 支持全局和凭据级别的 Auth Region \u002F API Region 配置\n- **凭据级代理**: 支持为每个凭据单独配置 HTTP\u002FSOCKS5 代理，优先级：凭据代理 > 全局代理 > 无代理\n\n---\n\n- [开始](#开始)\n  - [1. 编译](#1-编译)\n  - [2. 最小配置](#2-最小配置)\n  - [3. 启动](#3-启动)\n  - [4. 验证](#4-验证)\n  - [Docker](#docker)\n- [配置详解](#配置详解)\n  - [config.json](#configjson)\n  - [credentials.json](#credentialsjson)\n  - [Region 配置](#region-配置)\n  - [代理配置](#代理配置)\n  - [认证方式](#认证方式)\n  - [环境变量](#环境变量)\n- [API 端点](#api-端点)\n  - [标准端点 (\u002Fv1)](#标准端点-v1)\n  - [Claude Code 兼容端点 (\u002Fcc\u002Fv1)](#claude-code-兼容端点-ccv1)\n  - [Thinking 模式](#thinking-模式)\n  - [工具调用](#工具调用)\n- [模型映射](#模型映射)\n- [Admin（可选）](#admin可选)\n- [注意事项](#注意事项)\n- [项目结构](#项目结构)\n- [技术栈](#技术栈)\n- [License](#license)\n- [致谢](#致谢)\n\n## 开始\n\n### 1. 编译\n\n> PS: 如果不想编辑可以直接前往 Release 下载二进制文件\n\n> **前置步骤**：编译前需要先构建前端 Admin UI（用于嵌入到二进制中）：\n> ```bash\n> cd admin-ui && pnpm install && pnpm build\n> ```\n\n```bash\ncargo build --release\n```\n\n### 2. 最小配置\n\n创建 `config.json`：\n\n```json\n{\n   \"host\": \"127.0.0.1\",\n   \"port\": 8990,\n   \"apiKey\": \"sk-kiro-rs-qazWSXedcRFV123456\",\n   \"region\": \"us-east-1\"\n}\n```\n> PS: 如果你需要 Web 管理面板, 请注意配置 `adminApiKey`\n\n创建 `credentials.json`（从 Kiro IDE 等中获取凭证信息）：\n> PS: 可以前往 Web 管理面板配置跳过本步骤\n> 如果你对凭据地域有疑惑, 请查看 [Region 配置](#region-配置)\n\nSocial 认证：\n```json\n{\n   \"refreshToken\": \"你的刷新token\",\n   \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n   \"authMethod\": \"social\"\n}\n```\n\nIdC 认证：\n```json\n{\n   \"refreshToken\": \"你的刷新token\",\n   \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n   \"authMethod\": \"idc\",\n   \"clientId\": \"你的clientId\",\n   \"clientSecret\": \"你的clientSecret\"\n}\n```\n\n### 3. 启动\n\n```bash\n.\u002Ftarget\u002Frelease\u002Fkiro-rs\n```\n\n或指定配置文件路径：\n\n```bash\n.\u002Ftarget\u002Frelease\u002Fkiro-rs -c \u002Fpath\u002Fto\u002Fconfig.json --credentials \u002Fpath\u002Fto\u002Fcredentials.json\n```\n\n### 4. 验证\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:8990\u002Fv1\u002Fmessages \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"x-api-key: sk-kiro-rs-qazWSXedcRFV123456\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-20250514\",\n    \"max_tokens\": 1024,\n    \"stream\": true,\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"Hello, Claude!\"}\n    ]\n  }'\n```\n\n### Docker\n\n也可以通过 Docker 启动：\n\n```bash\ndocker-compose up\n```\n\n需要将 `config.json` 和 `credentials.json` 挂载到容器中，具体参见 `docker-compose.yml`。\n\n## 配置详解\n\n### config.json\n\n| 字段 | 类型 | 默认值 | 描述 |\n|------|------|--------|------|\n| `host` | string | `127.0.0.1` | 服务监听地址 |\n| `port` | number | `8080` | 服务监听端口 |\n| `apiKey` | string | - | 自定义 API Key（用于客户端认证，必配） |\n| `region` | string | `us-east-1` | AWS 区域 |\n| `authRegion` | string | - | Auth Region（用于 Token 刷新），未配置时回退到 region |\n| `apiRegion` | string | - | API Region（用于 API 请求），未配置时回退到 region |\n| `kiroVersion` | string | `0.9.2` | Kiro 版本号 |\n| `machineId` | string | - | 自定义机器码（64位十六进制），不定义则自动生成 |\n| `systemVersion` | string | 随机 | 系统版本标识 |\n| `nodeVersion` | string | `22.21.1` | Node.js 版本标识 |\n| `tlsBackend` | string | `rustls` | TLS 后端：`rustls` 或 `native-tls` |\n| `countTokensApiUrl` | string | - | 外部 count_tokens API 地址 |\n| `countTokensApiKey` | string | - | 外部 count_tokens API 密钥 |\n| `countTokensAuthType` | string | `x-api-key` | 外部 API 认证类型：`x-api-key` 或 `bearer` |\n| `proxyUrl` | string | - | HTTP\u002FSOCKS5 代理地址 |\n| `proxyUsername` | string | - | 代理用户名 |\n| `proxyPassword` | string | - | 代理密码 |\n| `adminApiKey` | string | - | Admin API 密钥，配置后启用凭据管理 API 和 Web 管理界面 |\n| `loadBalancingMode` | string | `priority` | 负载均衡模式：`priority`（按优先级）或 `balanced`（均衡分配） |\n| `extractThinking` | boolean | `true` | 非流式响应的 thinking 块提取。启用后 `\u003Cthinking>` 标签会被解析为独立的 `thinking` 内容块 |\n| `defaultEndpoint` | string | `ide` | 默认 Kiro 端点。凭据未显式指定 `endpoint` 时使用。当前支持：`ide` |\n\n完整配置示例：\n\n```json\n{\n   \"host\": \"127.0.0.1\",\n   \"port\": 8990,\n   \"apiKey\": \"sk-kiro-rs-qazWSXedcRFV123456\",\n   \"region\": \"us-east-1\",\n   \"tlsBackend\": \"rustls\",\n   \"kiroVersion\": \"0.9.2\",\n   \"machineId\": \"64位十六进制机器码\",\n   \"systemVersion\": \"darwin#24.6.0\",\n   \"nodeVersion\": \"22.21.1\",\n   \"authRegion\": \"us-east-1\",\n   \"apiRegion\": \"us-east-1\",\n   \"countTokensApiUrl\": \"https:\u002F\u002Fapi.example.com\u002Fv1\u002Fmessages\u002Fcount_tokens\",\n   \"countTokensApiKey\": \"sk-your-count-tokens-api-key\",\n   \"countTokensAuthType\": \"x-api-key\",\n   \"proxyUrl\": \"http:\u002F\u002F127.0.0.1:7890\",\n   \"proxyUsername\": \"user\",\n   \"proxyPassword\": \"pass\",\n   \"adminApiKey\": \"sk-admin-your-secret-key\",\n   \"loadBalancingMode\": \"priority\",\n   \"extractThinking\": true\n}\n```\n\n### credentials.json\n\n支持单对象格式（向后兼容）或数组格式（多凭据）。\n\n#### 字段说明\n\n| 字段             | 类型     | 描述                                          |\n|----------------|--------|---------------------------------------------|\n| `id`           | number | 凭据唯一 ID（可选，仅用于 Admin API 管理；手写文件可不填）        |\n| `accessToken`  | string | OAuth 访问令牌（可选，可自动刷新）                        |\n| `refreshToken` | string | OAuth 刷新令牌                                  |\n| `profileArn`   | string | AWS Profile ARN（可选，登录时返回）                   |\n| `expiresAt`    | string | Token 过期时间 (RFC3339)                        |\n| `authMethod`   | string | 认证方式：`social` 或 `idc`                       |\n| `clientId`     | string | IdC 登录的客户端 ID（IdC 认证必填）                     |\n| `clientSecret` | string | IdC 登录的客户端密钥（IdC 认证必填）                      |\n| `priority`     | number | 凭据优先级，数字越小越优先，默认为 0                         |\n| `region`       | string | 凭据级 Auth Region, 兼容字段                       |\n| `authRegion`   | string | 凭据级 Auth Region，用于 Token 刷新, 未配置时回退到 region |\n| `apiRegion`    | string | 凭据级 API Region，用于 API 请求                    |\n| `machineId`    | string | 凭据级机器码（64位十六进制）                             |\n| `email`        | string | 用户邮箱（可选，从 API 获取）                           |\n| `proxyUrl`     | string | 凭据级代理 URL（可选，特殊值 `direct` 表示不使用代理）       |\n| `proxyUsername`| string | 凭据级代理用户名（可选）                                |\n| `proxyPassword`| string | 凭据级代理密码（可选）                                 |\n| `endpoint`     | string | 凭据级端点名称（可选，未配置时使用 `config.defaultEndpoint`）|\n\n说明：\n- IdC \u002F Builder-ID \u002F IAM 在本项目里属于同一种登录方式，配置时统一使用 `authMethod: \"idc\"`\n- 为兼容旧配置，`builder-id` \u002F `iam` 仍可被识别，但会按 `idc` 处理\n\n#### 单凭据格式（旧格式，向后兼容）\n\n```json\n{\n   \"accessToken\": \"请求token，一般有效期一小时，可选\",\n   \"refreshToken\": \"刷新token，一般有效期7-30天不等\",\n   \"profileArn\": \"arn:aws:codewhisperer:us-east-1:111112222233:profile\u002FQWER1QAZSDFGH\",\n   \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n   \"authMethod\": \"social\",\n   \"clientId\": \"IdC 登录需要\",\n   \"clientSecret\": \"IdC 登录需要\"\n}\n```\n\n#### 多凭据格式（支持故障转移和自动回写）\n\n```json\n[\n   {\n      \"refreshToken\": \"第一个凭据的刷新token\",\n      \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n      \"authMethod\": \"social\",\n      \"priority\": 0\n   },\n   {\n      \"refreshToken\": \"第二个凭据的刷新token\",\n      \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n      \"authMethod\": \"idc\",\n      \"clientId\": \"xxxxxxxxx\",\n      \"clientSecret\": \"xxxxxxxxx\",\n      \"region\": \"us-east-2\",\n      \"priority\": 1,\n      \"proxyUrl\": \"socks5:\u002F\u002Fproxy.example.com:1080\",\n      \"proxyUsername\": \"user\",\n      \"proxyPassword\": \"pass\"\n   },\n   {\n      \"refreshToken\": \"第三个凭据（显式不走代理）\",\n      \"expiresAt\": \"2025-12-31T02:32:45.144Z\",\n      \"authMethod\": \"social\",\n      \"priority\": 2,\n      \"proxyUrl\": \"direct\"\n   }\n]\n```\n\n多凭据特性：\n- 按 `priority` 字段排序，数字越小优先级越高（默认为 0）\n- 单凭据最多重试 3 次，单请求最多重试 9 次\n- 自动故障转移到下一个可用凭据\n- 多凭据格式下 Token 刷新后自动回写到源文件\n\n### Region 配置\n\n支持多级 Region 配置，分别控制 Token 刷新和 API 请求使用的区域。\n\n**Auth Region**（Token 刷新）优先级：\n`凭据.authRegion` > `凭据.region` > `config.authRegion` > `config.region`\n\n**API Region**（API 请求）优先级：\n`凭据.apiRegion` > `config.apiRegion` > `config.region`\n\n### 代理配置\n\n支持全局代理和凭据级代理，凭据级代理会覆盖该凭据产生的所有出站连接（API 请求、Token 刷新、额度查询）。\n\n**代理优先级**：`凭据.proxyUrl` > `config.proxyUrl` > 无代理\n\n| 凭据 `proxyUrl` 值 | 行为 |\n|---|---|\n| 具体 URL（如 `http:\u002F\u002Fproxy:8080`、`socks5:\u002F\u002Fproxy:1080`） | 使用凭据指定的代理 |\n| `direct` | 显式不使用代理（即使全局配置了代理） |\n| 未配置（留空） | 回退到全局代理配置 |\n\n凭据级代理示例：\n\n```json\n[\n   {\n      \"refreshToken\": \"凭据A：使用自己的代理\",\n      \"authMethod\": \"social\",\n      \"proxyUrl\": \"socks5:\u002F\u002Fproxy-a.example.com:1080\",\n      \"proxyUsername\": \"user_a\",\n      \"proxyPassword\": \"pass_a\"\n   },\n   {\n      \"refreshToken\": \"凭据B：显式不走代理（直连）\",\n      \"authMethod\": \"social\",\n      \"proxyUrl\": \"direct\"\n   },\n   {\n      \"refreshToken\": \"凭据C：使用全局代理（或直连，取决于 config.json）\",\n      \"authMethod\": \"social\"\n   }\n]\n```\n\n### 认证方式\n\n客户端请求本服务时，支持两种认证方式：\n\n1. **x-api-key Header**\n   ```\n   x-api-key: sk-your-api-key\n   ```\n\n2. **Authorization Bearer**\n   ```\n   Authorization: Bearer sk-your-api-key\n   ```\n\n### 环境变量\n\n可通过环境变量配置日志级别：\n\n```bash\nRUST_LOG=debug .\u002Ftarget\u002Frelease\u002Fkiro-rs\n```\n\n## API 端点\n\n### 标准端点 (\u002Fv1)\n\n| 端点 | 方法 | 描述 |\n|------|------|------|\n| `\u002Fv1\u002Fmodels` | GET | 获取可用模型列表 |\n| `\u002Fv1\u002Fmessages` | POST | 创建消息（对话） |\n| `\u002Fv1\u002Fmessages\u002Fcount_tokens` | POST | 估算 Token 数量 |\n\n### Claude Code 兼容端点 (\u002Fcc\u002Fv1)\n\n| 端点 | 方法 | 描述 |\n|------|------|------|\n| `\u002Fcc\u002Fv1\u002Fmessages` | POST | 创建消息（缓冲模式，确保 `input_tokens` 准确） |\n| `\u002Fcc\u002Fv1\u002Fmessages\u002Fcount_tokens` | POST | 估算 Token 数量（与 `\u002Fv1` 相同） |\n\n> **`\u002Fcc\u002Fv1\u002Fmessages` 与 `\u002Fv1\u002Fmessages` 的区别**：\n> - `\u002Fv1\u002Fmessages`：实时流式返回，`message_start` 中的 `input_tokens` 是估算值\n> - `\u002Fcc\u002Fv1\u002Fmessages`：缓冲模式，等待上游流完成后，用从 `contextUsageEvent` 计算的准确 `input_tokens` 更正 `message_start`，然后一次性返回所有事件\n> - 等待期间会每 25 秒发送 `ping` 事件保活\n\n### Thinking 模式\n\n支持 Claude 的 extended thinking 功能：\n\n```json\n{\n  \"model\": \"claude-sonnet-4-20250514\",\n  \"max_tokens\": 16000,\n  \"thinking\": {\n    \"type\": \"enabled\",\n    \"budget_tokens\": 10000\n  },\n  \"messages\": [...]\n}\n```\n\n### 工具调用\n\n完整支持 Anthropic 的 tool use 功能：\n\n```json\n{\n  \"model\": \"claude-sonnet-4-20250514\",\n  \"max_tokens\": 1024,\n  \"tools\": [\n    {\n      \"name\": \"get_weather\",\n      \"description\": \"获取指定城市的天气\",\n      \"input_schema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"city\": {\"type\": \"string\"}\n        },\n        \"required\": [\"city\"]\n      }\n    }\n  ],\n  \"messages\": [...]\n}\n```\n\n## 模型映射\n\n| Anthropic 模型 | Kiro 模型 |\n|----------------|-----------|\n| `*sonnet*` | `claude-sonnet-4.5` |\n| `*opus*`（含 4.5\u002F4-5） | `claude-opus-4.5` |\n| `*opus*`（其他） | `claude-opus-4.6` |\n| `*haiku*` | `claude-haiku-4.5` |\n\n## Admin（可选）\n\n当 `config.json` 配置了非空 `adminApiKey` 时，会启用：\n\n- **Admin API（认证同 API Key）**\n  - `GET \u002Fapi\u002Fadmin\u002Fcredentials` - 获取所有凭据状态\n  - `POST \u002Fapi\u002Fadmin\u002Fcredentials` - 添加新凭据\n  - `DELETE \u002Fapi\u002Fadmin\u002Fcredentials\u002F:id` - 删除凭据\n  - `POST \u002Fapi\u002Fadmin\u002Fcredentials\u002F:id\u002Fdisabled` - 设置凭据禁用状态\n  - `POST \u002Fapi\u002Fadmin\u002Fcredentials\u002F:id\u002Fpriority` - 设置凭据优先级\n  - `POST \u002Fapi\u002Fadmin\u002Fcredentials\u002F:id\u002Freset` - 重置失败计数\n  - `GET \u002Fapi\u002Fadmin\u002Fcredentials\u002F:id\u002Fbalance` - 获取凭据余额\n\n- **Admin UI**\n  - `GET \u002Fadmin` - 访问管理页面（需要在编译前构建 `admin-ui\u002Fdist`）\n\n## 注意事项\n\n1. **凭证安全**: 请妥善保管 `credentials.json` 文件，不要提交到版本控制\n2. **Token 刷新**: 服务会自动刷新过期的 Token，无需手动干预\n3. **WebSearch 工具**: 当 `tools` 列表仅包含一个 `web_search` 工具时，会走内置 WebSearch 转换逻辑\n\n## 项目结构\n\n```\nkiro-rs\u002F\n├── src\u002F\n│   ├── main.rs                 # 程序入口\n│   ├── http_client.rs          # HTTP 客户端构建\n│   ├── token.rs                # Token 计算模块\n│   ├── debug.rs                # 调试工具\n│   ├── test.rs                 # 测试\n│   ├── model\u002F                  # 配置和参数模型\n│   │   ├── config.rs           # 应用配置\n│   │   └── arg.rs              # 命令行参数\n│   ├── anthropic\u002F              # Anthropic API 兼容层\n│   │   ├── router.rs           # 路由配置\n│   │   ├── handlers.rs         # 请求处理器\n│   │   ├── middleware.rs       # 认证中间件\n│   │   ├── types.rs            # 类型定义\n│   │   ├── converter.rs        # 协议转换器\n│   │   ├── stream.rs           # 流式响应处理\n│   │   └── websearch.rs        # WebSearch 工具处理\n│   ├── kiro\u002F                   # Kiro API 客户端\n│   │   ├── provider.rs         # API 提供者\n│   │   ├── token_manager.rs    # Token 管理\n│   │   ├── machine_id.rs       # 设备指纹生成\n│   │   ├── model\u002F              # 数据模型\n│   │   │   ├── credentials.rs  # OAuth 凭证\n│   │   │   ├── events\u002F         # 响应事件类型\n│   │   │   ├── requests\u002F       # 请求类型\n│   │   │   ├── common\u002F         # 共享类型\n│   │   │   ├── token_refresh.rs # Token 刷新模型\n│   │   │   └── usage_limits.rs # 使用额度模型\n│   │   └── parser\u002F             # AWS Event Stream 解析器\n│   │       ├── decoder.rs      # 流式解码器\n│   │       ├── frame.rs        # 帧解析\n│   │       ├── header.rs       # 头部解析\n│   │       ├── error.rs        # 错误类型\n│   │       └── crc.rs          # CRC 校验\n│   ├── admin\u002F                  # Admin API 模块\n│   │   ├── router.rs           # 路由配置\n│   │   ├── handlers.rs         # 请求处理器\n│   │   ├── service.rs          # 业务逻辑服务\n│   │   ├── types.rs            # 类型定义\n│   │   ├── middleware.rs       # 认证中间件\n│   │   └── error.rs            # 错误处理\n│   ├── admin_ui\u002F               # Admin UI 静态文件嵌入\n│   │   └── router.rs           # 静态文件路由\n│   └── common\u002F                 # 公共模块\n│       └── auth.rs             # 认证工具函数\n├── admin-ui\u002F                   # Admin UI 前端工程（构建产物会嵌入二进制）\n├── tools\u002F                      # 辅助工具\n├── Cargo.toml                  # 项目配置\n├── config.example.json         # 配置示例\n├── docker-compose.yml          # Docker Compose 配置\n└── Dockerfile                  # Docker 构建文件\n```\n\n## 技术栈\n\n- **Web 框架**: [Axum](https:\u002F\u002Fgithub.com\u002Ftokio-rs\u002Faxum) 0.8\n- **异步运行时**: [Tokio](https:\u002F\u002Ftokio.rs\u002F)\n- **HTTP 客户端**: [Reqwest](https:\u002F\u002Fgithub.com\u002Fseanmonstar\u002Freqwest)\n- **序列化**: [Serde](https:\u002F\u002Fserde.rs\u002F)\n- **日志**: [tracing](https:\u002F\u002Fgithub.com\u002Ftokio-rs\u002Ftracing)\n- **命令行**: [Clap](https:\u002F\u002Fgithub.com\u002Fclap-rs\u002Fclap)\n\n## License\n\nMIT\n\n## 致谢\n\n本项目的实现离不开前辈的努力:  \n - [kiro2api](https:\u002F\u002Fgithub.com\u002Fcaidaoli\u002Fkiro2api)\n - [proxycast](https:\u002F\u002Fgithub.com\u002Faiclientproxy\u002Fproxycast)\n\n本项目部分逻辑参考了以上的项目, 再次由衷的感谢!\n","kiro.rs 是一个用 Rust 编写的 Anthropic Claude API 兼容代理服务，能够将 Anthropic API 请求转换为 Kiro API 请求。该项目支持流式响应、自动刷新 OAuth Token、多凭据故障转移和负载均衡等功能，确保了高可用性和稳定性。此外，它还提供了智能重试机制、凭据回写功能以及支持多种认证方式和模型。kiro.rs 适用于需要与 Anthropic Claude API 进行交互但希望使用 Kiro 服务的场景，尤其是在对稳定性和安全性有较高要求的应用中。",2,"2026-06-11 03:32:39","trending"]