Skip to content

2ue/kiro.rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

394 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kiro-rs

一个用 Rust 编写的 Anthropic Claude API 兼容代理服务,将 Anthropic API 请求转换为 Kiro API 请求。

免责声明

本项目仅供研究使用, Use at your own risk, 使用本项目所导致的任何后果由使用人承担, 与本项目无关。 本项目与 AWS/KIRO/Anthropic/Claude 等官方无关, 本项目不代表官方立场。

注意!

因 TLS 默认从 native-tls 切换至 rustls,你可能需要专门安装证书后才能配置 HTTP 代理。可通过 config.jsontlsBackend 切回 native-tls。 如果遇到请求报错, 尤其是无法刷新 token, 或者是直接返回 error request, 请尝试切换 tls 后端为 native-tls, 一般即可解决。

Write Failed/会话卡死: 如果遇到持续的 Write File / Write Failed 并导致会话不可用,通常与输出过长被截断有关,可尝试调低输出相关 token 上限。

功能特性

  • Anthropic API 兼容: 完整支持 Anthropic Claude API 格式
  • 流式响应: 支持 SSE (Server-Sent Events) 流式输出
  • Token 自动刷新: 自动管理和刷新 OAuth Token
  • 多凭据支持: 支持配置多个凭据,按优先级自动故障转移
  • 负载均衡: 支持 priority(按优先级)和 balanced(均衡分配)两种模式
  • 智能重试: 单凭据最多重试 3 次,单请求最多重试 9 次
  • 数据库持久化: 运行配置、凭据、凭据运行态、usage 记录和模型价格使用 PgSQL;会话绑定、冷却、限流、并发 lease、刷新锁和余额缓存使用 Redis
  • Thinking 模式: 支持 Claude 的 extended thinking 功能
  • 工具调用: 完整支持 function calling / tool use
  • WebSearch: 内置 WebSearch 工具转换逻辑
  • 多模型支持: 支持 Sonnet、Opus、Haiku 系列模型
  • Admin 管理: 可选的 Web 管理界面和 API,支持凭据管理、余额查询等
  • 多级 Region 配置: 支持全局和凭据级别的 Auth Region / API Region 配置
  • 凭据级代理: 支持为每个凭据单独配置 HTTP/SOCKS5 代理,优先级:凭据代理 > 全局代理 > 无代理

开始

1. 编译

PS: 如果不想编辑可以直接前往 Release 下载二进制文件

前置步骤:编译前需要先构建前端 Admin UI(用于嵌入到二进制中):

pnpm --dir admin-ui install && pnpm --dir admin-ui build
pnpm --dir admin-ui-daisy install && pnpm --dir admin-ui-daisy build
cargo build --release

2. 最小配置

创建 config.json

{
   "postgres": {
      "url": "postgres://kiro_rs:kiro_rs_dev_password@127.0.0.1:25432/kiro_rs"
   },
   "redis": {
      "url": "redis://127.0.0.1:26379/0"
   },
   "host": "127.0.0.1",
   "port": 8990,
   "apiKey": "sk-kiro-rs-qazWSXedcRFV123456",
   "region": "us-east-1"
}

PS: 如果你需要 Web 管理面板, 请注意配置 adminApiKey PgSQL 和 Redis 为必需依赖。首次启动时会把 config.jsoncredentials.json 导入 PgSQL;之后运行配置、凭据状态、Token 刷新结果、失败计数、预热状态、统计和 usage 记录都以数据库为准。会话粘性、临时冷却、本地限流、并发占用和跨实例 Token 刷新锁以 Redis 为准。

创建 credentials.json(从 Kiro IDE 等中获取凭证信息):

PS: 可以前往 Web 管理面板配置跳过本步骤 如果你对凭据地域有疑惑, 请查看 Region 配置

Social 认证:

{
   "refreshToken": "你的刷新token",
   "expiresAt": "2025-12-31T02:32:45.144Z",
   "authMethod": "social"
}

IdC 认证:

{
   "refreshToken": "你的刷新token",
   "expiresAt": "2025-12-31T02:32:45.144Z",
   "authMethod": "idc",
   "clientId": "你的clientId",
   "clientSecret": "你的clientSecret"
}

3. 启动

./target/release/kiro-rs

或指定配置文件路径:

./target/release/kiro-rs -c /path/to/config.json --credentials /path/to/credentials.json

4. 验证

curl http://127.0.0.1:8990/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: sk-kiro-rs-qazWSXedcRFV123456" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

Docker

完整部署请使用不会覆盖旧文件的 docker-compose.database.yml,它包含当前服务、PgSQL 和 Redis:

docker compose -f docker-compose.database.yml up -d

需要将首次导入用的 config.jsoncredentials.json 挂载到容器中,具体参见 docker-compose.database.yml

使用已发布镜像部署:

docker compose -f docker-compose.deploy.yml up -d

部署版默认使用 ghcr.io/2ue/kiro-rs:latest,可通过环境变量固定版本:

KIRO_RS_VERSION=0.0.5 docker compose -f docker-compose.deploy.yml up -d

如需改用 Docker Hub 镜像,可通过 KIRO_RS_IMAGE 覆盖镜像仓库。

容器端口固定为 8990,请确保挂载的 config/config.jsonhost 配置为 0.0.0.0,否则宿主机端口映射后可能无法访问服务。

配置详解

config.json

字段 类型 默认值 描述
host string 127.0.0.1 服务监听地址
port number 8080 服务监听端口
apiKey string - 自定义 API Key(用于客户端认证,必配)
region string us-east-1 AWS 区域
authRegion string - Auth Region(用于 Token 刷新),未配置时回退到 region
apiRegion string - API Region(用于 API 请求),未配置时回退到 region
kiroVersion string 0.11.107 Kiro 版本号
machineId string - 自定义机器码(64位十六进制),不定义则自动生成
systemVersion string 随机 系统版本标识
nodeVersion string 22.22.0 Node.js 版本标识
tlsBackend string rustls TLS 后端:rustlsnative-tls
countTokensApiUrl string - 外部 count_tokens API 地址
countTokensApiKey string - 外部 count_tokens API 密钥
countTokensAuthType string x-api-key 外部 API 认证类型:x-api-keybearer
proxyUrl string - HTTP/SOCKS5 代理地址
proxyUsername string - 代理用户名
proxyPassword string - 代理密码
adminApiKey string - Admin API 密钥,配置后启用凭据管理 API 和 Web 管理界面
postgres.url string 必填 PgSQL 连接地址。服务启动必须能连接;首次启动可从配置文件导入运行配置和凭据
postgres.maxConnections number 10 PgSQL 连接池最大连接数
postgres.migrateOnStart boolean true 启动时是否自动创建/升级数据库表
redis.url string 必填 Redis 连接地址,用于会话绑定、临时冷却、本地限流、并发 lease、跨实例 Token 刷新锁和余额缓存
redis.keyPrefix string kiro_rs:local Redis key 前缀,用于和同一个 Redis 中的其他业务隔离
loadBalancingMode string priority 负载均衡模式:priority(按优先级)或 balanced(均衡分配)
credentialRpm number/null null 单凭据本地 RPM 限速;null0 表示关闭。开启后会优先分流到其他可用凭据
credentialMaxConcurrentRequests number 0 单凭据最大并发请求数;0 表示不限制。开启后同一凭据达到并发上限时,新请求会优先换其他可用凭据
credentialTransientCooldownSecs number 10 上游 408/429/5xx 且没有 Retry-After 时的凭据临时冷却秒数;只有存在其他可用凭据时才冷却当前凭据
credentialMaxCooldownSecs number 300 单凭据临时冷却上限,用于限制 Retry-After 的影响范围
credentialDispatchMaxWaitSecs number 120 单个请求等待凭据可调度的最长秒数;0 表示不限制。超时后返回本地调度限流错误,避免请求长期挂起
credentialInFlightLeaseMaxSecs number 900 单个并发占用超过多久未活跃时自动释放;0 表示关闭。用于兜底异常路径导致的并发槽长期占用
credentialWarmupRequests number 3 新增凭据默认预热次数;预热只通过真实业务请求成功递减,不伪造 success_count
credentialWarmupSelectionPercent number 5 balanced 模式下预热凭据参与真实业务请求调度的概率百分比
compression.enabled boolean false 是否启用上游请求压缩;默认关闭
compression.whitespaceCompression boolean true 启用 compression 后是否只做 JSON whitespace 压缩;默认只开启该低风险压缩
payloadGuardEnabled boolean true 是否启用发送 Kiro 上游前的最终 payload 防护
payloadGuardMaxBytes number 460800 Kiro 上游请求 JSON body 最大字节数,按最终发送的 JSON 字节数计算;0 表示不限制大小但仍执行 payload 协议修复
payloadGuardTrimHistory boolean true payload 超限时是否允许裁剪最旧历史;关闭后只做协议修复,仍超限会直接返回客户端错误
compatProfile string claude-code 兼容 profile:claude-code 优先真实 Claude Code CLI 可用性;anthropic-strict 减少代理改写和调试特征;debug 等同 claude-code 但默认暴露代理 warning
extractThinking boolean true 非流式响应的 thinking 块提取。启用后 <thinking> 标签会被解析为独立的 thinking 内容块
promptCacheTargetReadRatio number 0.98 /v1/messages/cc/v1/messages/ha/v1/messages/na/v1/messages high-cache 的目标 cache read 中心比例;/na 默认只保留真实上游 cache usage,不用本地模拟补足 cache usage
promptCacheTokenScale number 1.6 /v1/messages/cc/v1/messages/ha/v1/messages/na/v1/messages high-cache 模拟专用的 total input 放大倍数,只影响本地模拟 cache usage
promptCacheMaxSimulatedInputTokens number 300000 /v1/messages/cc/v1/messages/ha/v1/messages/na/v1/messages high-cache 模拟 total input 的上限;触顶时会做确定性 soft-cap 抖动
promptCacheCapJitterMinTokens number 12000 high-cache 触顶 soft-cap 的最小扣减 token
promptCacheCapJitterMaxTokens number 24000 high-cache 触顶 soft-cap 的最大扣减 token
promptCacheScaleMinInputTokens number 20000 基础输入达到该门槛后才启用 high-cache token scale,避免短测试请求被放大
reportedUsage.default object input/output 原始值,cache read/write 保留计算值 控制所有路径的默认 usage 上报方式,只影响响应和后台 usage record,不影响 reader 计算、本地缓存 tracker 或上游请求
reportedUsage.pathOverrides object /na/cc/ha 按路径前缀独立覆盖默认 usage 上报策略,最长前缀优先;例如 /cc 会匹配 /cc/v1/messages/ha/na 不会继承 /cc 的 writer 配置
usageRecordLimit number 5000 内存中保留的最近 usage 记录数量;完整 usage 记录写入 PgSQL
highCacheThreshold number 10000 Admin 统计高缓存请求的 cache read 阈值
defaultEndpoint string ide 默认 Kiro 端点。凭据未显式指定 endpoint 时使用。当前支持:ide
exposeProxyWarnings boolean false 是否通过 x-kiro-rs-warnings 暴露代理侧兜底改写。anthropic-strict 下会强制关闭

最小配置示例:

{
   "postgres": {
      "url": "postgres://kiro_rs:kiro_rs_dev_password@127.0.0.1:25432/kiro_rs"
   },
   "redis": {
      "url": "redis://127.0.0.1:26379/0"
   },
   "host": "127.0.0.1",
   "port": 8990,
   "apiKey": "sk-kiro-rs-qazWSXedcRFV123456",
   "adminApiKey": "sk-admin-your-secret-key",
   "payloadGuardEnabled": true,
   "payloadGuardMaxBytes": 460800,
   "payloadGuardTrimHistory": true
}

未写出的字段会使用内置默认值。首次启动导入 PgSQL 后,也可以在后台配置页热更新调度、payload 防护、高缓存模拟和路径级 usage 上报策略。

缓存模式由路径固定选择:

  • /v1/messages:high-cache。即使请求没有显式 cache_control,也会按稳定前缀建立本地缓存;如果上游 metadata 返回的 cache read/write 都是 0,会用本地缓存 usage 补足 cache 字段。
  • /cc/v1/messages:high-cache,与 /v1/messages 使用同一套底层缓存模拟;默认只通过 reportedUsage.pathOverrides["/cc"] 改写下游 input 和 cache write 上报。
  • /ha/v1/messages:high-cache,与 /v1/messages 使用同一套底层缓存模拟;默认只通过 reportedUsage.pathOverrides["/ha"] 改写下游 input 上报。后续如果要改 writer,需要单独改 /ha 覆盖项。
  • /na/v1/messages:high-cache 路由;reportedUsage.pathOverrides["/na"] 默认关闭本地模拟 cache usage 补足,只保留真实上游 cache usage。

路径级 usage 上报策略支持这些字段:

  • input:控制 input_tokens。使用 sample-max 时会采样到 maxTokens 以内;moveDeltaToCacheRead 为 true 时,减少的 input 差值会加入 cache_read_input_tokens
  • output:控制 output_tokens。默认建议 raw,也就是直接使用上游返回的原始输出。
  • cacheRead:控制 cache_read_input_tokens。默认建议 preserve
  • cacheCreation:控制 cache_creation_input_tokens/cc 默认使用 sample-targettargetTokens3000normalMaxMultiplier1.2

credentials.json

支持单对象格式(向后兼容)或数组格式(多凭据)。

字段说明

字段 类型 描述
id number 凭据唯一 ID(可选,仅用于 Admin API 管理;手写文件可不填)
accessToken string OAuth 访问令牌(可选,可自动刷新)
refreshToken string OAuth 刷新令牌
profileArn string AWS Profile ARN(可选,登录时返回)
expiresAt string Token 过期时间 (RFC3339)
authMethod string 认证方式:socialidc
clientId string IdC 登录的客户端 ID(IdC 认证必填)
clientSecret string IdC 登录的客户端密钥(IdC 认证必填)
priority number 凭据优先级,数字越小越优先,默认为 0
region string 凭据级 Auth Region, 兼容字段
authRegion string 凭据级 Auth Region,用于 Token 刷新, 未配置时回退到 region
apiRegion string 凭据级 API Region,用于 API 请求
machineId string 凭据级机器码(64位十六进制)
email string 用户邮箱(可选,从 API 获取)
proxyUrl string 凭据级代理 URL(可选,特殊值 direct 表示不使用代理)
proxyUsername string 凭据级代理用户名(可选)
proxyPassword string 凭据级代理密码(可选)
endpoint string 凭据级端点名称(可选,未配置时使用 config.defaultEndpoint

说明:

  • IdC / Builder-ID / IAM 在本项目里属于同一种登录方式,配置时统一使用 authMethod: "idc"
  • 为兼容旧配置,builder-id / iam 仍可被识别,但会按 idc 处理

单凭据格式(旧格式,向后兼容)

{
   "accessToken": "请求token,一般有效期一小时,可选",
   "refreshToken": "刷新token,一般有效期7-30天不等",
   "profileArn": "arn:aws:codewhisperer:us-east-1:111112222233:profile/QWER1QAZSDFGH",
   "expiresAt": "2025-12-31T02:32:45.144Z",
   "authMethod": "social",
   "clientId": "IdC 登录需要",
   "clientSecret": "IdC 登录需要"
}

多凭据格式(支持故障转移和自动回写)

[
   {
      "refreshToken": "第一个凭据的刷新token",
      "expiresAt": "2025-12-31T02:32:45.144Z",
      "authMethod": "social",
      "priority": 0
   },
   {
      "refreshToken": "第二个凭据的刷新token",
      "expiresAt": "2025-12-31T02:32:45.144Z",
      "authMethod": "idc",
      "clientId": "xxxxxxxxx",
      "clientSecret": "xxxxxxxxx",
      "region": "us-east-2",
      "priority": 1,
      "proxyUrl": "socks5://proxy.example.com:1080",
      "proxyUsername": "user",
      "proxyPassword": "pass"
   },
   {
      "refreshToken": "第三个凭据(显式不走代理)",
      "expiresAt": "2025-12-31T02:32:45.144Z",
      "authMethod": "social",
      "priority": 2,
      "proxyUrl": "direct"
   }
]

多凭据特性:

  • priority 字段排序,数字越小优先级越高(默认为 0)
  • 单凭据最多重试 3 次,单请求最多重试 9 次
  • 自动故障转移到下一个可用凭据
  • 多凭据格式下 Token 刷新后自动回写到源文件

Region 配置

支持多级 Region 配置,分别控制 Token 刷新和 API 请求使用的区域。

Auth Region(Token 刷新)优先级: 凭据.authRegion > 凭据.region > config.authRegion > config.region

API Region(API 请求)优先级: 凭据.apiRegion > config.apiRegion > config.region

代理配置

支持全局代理和凭据级代理,凭据级代理会覆盖该凭据产生的所有出站连接(API 请求、Token 刷新、额度查询)。

代理优先级凭据.proxyUrl > config.proxyUrl > 无代理

凭据 proxyUrl 行为
具体 URL(如 http://proxy:8080socks5://proxy:1080 使用凭据指定的代理
direct 显式不使用代理(即使全局配置了代理)
未配置(留空) 回退到全局代理配置

凭据级代理示例:

[
   {
      "refreshToken": "凭据A:使用自己的代理",
      "authMethod": "social",
      "proxyUrl": "socks5://proxy-a.example.com:1080",
      "proxyUsername": "user_a",
      "proxyPassword": "pass_a"
   },
   {
      "refreshToken": "凭据B:显式不走代理(直连)",
      "authMethod": "social",
      "proxyUrl": "direct"
   },
   {
      "refreshToken": "凭据C:使用全局代理(或直连,取决于 config.json)",
      "authMethod": "social"
   }
]

认证方式

客户端请求本服务时,支持两种认证方式:

  1. x-api-key Header

    x-api-key: sk-your-api-key
    
  2. Authorization Bearer

    Authorization: Bearer sk-your-api-key
    

环境变量

服务运行时主要使用配置文件和启动参数。以下环境变量可选:

RUST_LOG=debug ./target/release/kiro-rs
变量 默认值 说明
RUST_LOG info 日志级别,例如 debug / info
KIRO_API_KEY - 自动导入一个最高优先级的 Kiro API Key 凭据并写入 PgSQL,可用于不准备 credentials.json 的场景
KIRO_RS_IMAGE ghcr.io/2ue/kiro-rs docker-compose.deploy.yml 使用的镜像仓库
KIRO_RS_VERSION latest docker-compose.deploy.yml 使用的镜像 tag
KIRO_RS_PORT 8990 Docker 部署时映射到宿主机的端口

Admin UI 本地开发时还可以用 VITE_API_PROXY_TARGET 覆盖 Vite 代理后端地址,默认 http://localhost:8080

API 端点

标准端点 (/v1)

端点 方法 描述
/v1/models GET 获取可用模型列表
/v1/messages POST 创建消息(对话,固定 high-cache 本地 usage 模拟)
/v1/messages/count_tokens POST 估算 Token 数量

真实 Cache Usage 上报端点 (/na/v1)

端点 方法 描述
/na/v1/models GET 获取可用模型列表
/na/v1/messages POST 创建消息(对话;底层 high-cache 计算保持开启,默认只上报真实上游 cache usage)
/na/v1/messages/count_tokens POST 估算 Token 数量

Claude Code 兼容端点 (/cc/v1)

端点 方法 描述
/cc/v1/models GET 获取可用模型列表
/cc/v1/messages POST 创建消息(缓冲模式,确保 input_tokens 准确)
/cc/v1/messages/count_tokens POST 估算 Token 数量(与 /v1 相同)

/cc/v1/messages/v1/messages 的区别

  • /v1/messages:实时流式返回,message_start 中的 input_tokens 是估算值
  • /cc/v1/messages:缓冲模式,等待上游流完成后,用从 contextUsageEvent 计算的准确 input_tokens 更正 message_start,然后一次性返回所有事件
  • 等待期间会每 25 秒发送 ping 事件保活

Thinking 模式

支持 Claude 的 extended thinking 功能:

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  },
  "messages": [...]
}

工具调用

完整支持 Anthropic 的 tool use 功能:

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "tools": [
    {
      "name": "get_weather",
      "description": "获取指定城市的天气",
      "input_schema": {
        "type": "object",
        "properties": {
          "city": {"type": "string"}
        },
        "required": ["city"]
      }
    }
  ],
  "messages": [...]
}

模型映射

Anthropic 模型 Kiro 模型
*sonnet* claude-sonnet-4.5
*opus*(含 4.5/4-5) claude-opus-4.5
*opus*(其他) claude-opus-4.6
*haiku* claude-haiku-4.5

Admin(可选)

config.json 配置了非空 adminApiKey 时,会启用:

  • Admin API(认证同 API Key)

    • GET /api/admin/credentials - 获取所有凭据状态
    • POST /api/admin/credentials - 添加新凭据
    • DELETE /api/admin/credentials/:id - 删除凭据
    • POST /api/admin/credentials/:id/disabled - 设置凭据禁用状态
    • POST /api/admin/credentials/:id/priority - 设置凭据优先级
    • POST /api/admin/credentials/:id/warmup - 设置凭据预热次数
    • POST /api/admin/credentials/:id/in-flight/clear - 清理凭据并发占用
    • POST /api/admin/credentials/:id/reset - 重置失败计数
    • POST /api/admin/credentials/:id/refresh - 强制刷新 Token
    • GET /api/admin/credentials/:id/balance - 获取凭据余额
    • POST /api/admin/credentials/:id/test - 测试指定凭据的模型调用
    • GET /api/admin/usage-records-paged - 分页查询 Usage 记录
    • POST /api/admin/usage-records/clear - 软删除当前 Usage 展示记录
    • GET /api/admin/model-pricing - 获取模型价格目录
    • POST /api/admin/model-pricing/sync - 手动同步模型价格目录
    • GET /api/admin/audit-logs - 分页查询后台审计日志
  • Admin UI

    • GET /console - 访问新版 Daisy 管理页面(需要在编译前构建 admin-ui-daisy/dist
    • GET /admin - 访问旧版管理页面(需要在编译前构建 admin-ui/dist

注意事项

  1. 凭证安全: 请妥善保管首次导入用的 credentials.json 和 PgSQL 数据库,不要提交到版本控制
  2. Token 刷新: 服务会自动刷新过期的 Token,无需手动干预
  3. WebSearch 工具: 当 tools 列表仅包含一个 web_search 工具时,会走内置 WebSearch 转换逻辑

项目结构

kiro-rs/
├── src/
│   ├── main.rs                 # 程序入口
│   ├── http_client.rs          # HTTP 客户端构建
│   ├── token.rs                # Token 计算模块
│   ├── debug.rs                # 调试工具
│   ├── test.rs                 # 测试
│   ├── model/                  # 配置和参数模型
│   │   ├── config.rs           # 应用配置
│   │   └── arg.rs              # 命令行参数
│   ├── anthropic/              # Anthropic API 兼容层
│   │   ├── router.rs           # 路由配置
│   │   ├── handlers.rs         # 请求处理器
│   │   ├── middleware.rs       # 认证中间件
│   │   ├── types.rs            # 类型定义
│   │   ├── converter.rs        # 协议转换器
│   │   ├── stream.rs           # 流式响应处理
│   │   └── websearch.rs        # WebSearch 工具处理
│   ├── kiro/                   # Kiro API 客户端
│   │   ├── provider.rs         # API 提供者
│   │   ├── token_manager.rs    # Token 管理
│   │   ├── machine_id.rs       # 设备指纹生成
│   │   ├── model/              # 数据模型
│   │   │   ├── credentials.rs  # OAuth 凭证
│   │   │   ├── events/         # 响应事件类型
│   │   │   ├── requests/       # 请求类型
│   │   │   ├── common/         # 共享类型
│   │   │   ├── token_refresh.rs # Token 刷新模型
│   │   │   └── usage_limits.rs # 使用额度模型
│   │   └── parser/             # AWS Event Stream 解析器
│   │       ├── decoder.rs      # 流式解码器
│   │       ├── frame.rs        # 帧解析
│   │       ├── header.rs       # 头部解析
│   │       ├── error.rs        # 错误类型
│   │       └── crc.rs          # CRC 校验
│   ├── admin/                  # Admin API 模块
│   │   ├── router.rs           # 路由配置
│   │   ├── handlers.rs         # 请求处理器
│   │   ├── service.rs          # 业务逻辑服务
│   │   ├── types.rs            # 类型定义
│   │   ├── middleware.rs       # 认证中间件
│   │   └── error.rs            # 错误处理
│   ├── admin_ui/               # Admin UI 静态文件嵌入
│   │   └── router.rs           # 静态文件路由
│   ├── storage/                # PgSQL 和 Redis 存储
│   │   ├── postgres.rs         # PgSQL 表结构和读写
│   │   └── redis_cache.rs      # Redis 缓存和调度运行态
│   └── common/                 # 公共模块
│       └── auth.rs             # 认证工具函数
├── admin-ui/                   # 旧版 Admin UI 前端工程(构建产物会嵌入二进制)
├── admin-ui-daisy/             # 新版 Console UI 前端工程(构建产物会嵌入二进制)
├── tools/                      # 辅助工具
├── Cargo.toml                  # 项目配置
├── config.example.json         # 配置示例
├── docker-compose.yml          # 旧版单服务 Docker Compose 配置
├── docker-compose.local-infra.yml # 本地 PgSQL/Redis 测试依赖
├── docker-compose.database.yml # 服务 + PgSQL + Redis 部署配置
└── Dockerfile                  # Docker 构建文件

技术栈

License

MIT

致谢

本项目的实现离不开前辈的努力:

本项目部分逻辑参考了以上的项目, 再次由衷的感谢!

About

A Kiro Client in Rust

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 68.9%
  • TypeScript 28.5%
  • HTML 1.5%
  • Other 1.1%