跳转到主要内容
如果你想最快理解 Arc、在本地跑起来并跳到对应文档,这一页就是最佳入口。

为什么选择 Arc

很多反向代理在高负载下依赖事件循环协调,会带来额外系统调用和跨线程开销。Arc 使用每个 CPU 核心一个 worker,并为其分配专属资源,因此在高并发下延迟更可预测。

快速开始

1

克隆并编译

git clone https://github.com/shuakami/Arc
cd Arc
cargo build -p arc-gateway --release
2

创建最小配置

node:
  workers: 0

listeners:
  - name: http
    kind: http
    bind: "0.0.0.0:8080"

upstreams:
  - name: app
    discovery:
      type: static
      endpoints:
        - address: "127.0.0.1:3000"

routes:
  - name: root
    match:
      path: "/{*rest}"
    action:
      upstream: app
3

运行 Arc

./target/release/arc-gateway --config arc.yaml
4

验证运行结果

curl http://localhost:8080/
curl http://localhost:9090/healthz
curl http://localhost:9090/metrics
如果 Arc 运行正常,:8080 会把流量代理到你的上游服务,/healthz 返回 ok/metrics 返回 Prometheus 文本指标。

核心能力

能力你能获得什么
io_uring 数据平面使用固定缓冲区和环形 I/O,构建低开销请求路径。
按核线程 worker通过避免跨 worker 共享状态争用,获得更可预测的延迟。
HTTP/1.1 与 HTTP/2覆盖常见南北向与内部服务流量协议。
TLS 与 ACMERustls 终止 TLS,并支持自动证书生命周期管理。
WASM 插件不重编译核心代理逻辑,也能做请求过滤和扩展。
速率限制提供路由级与全局级的突发流量与滥用防护。
可观测性提供 Prometheus 指标、访问日志与追踪友好遥测。

文档导航

内部 crate 布局

arc-gateway            主代理状态机与 worker 生命周期
arc-config             配置 schema、编译与热重载装配
arc-core               共享核心类型
arc-net                io_uring 封装、缓冲池与 socket 操作
arc-router             路由编译与匹配
arc-acme               ACME challenge 与证书生命周期
arc-global-rate-limit  基于 Redis 的集群级限流
arc-proto-http1        HTTP/1.x 解析与响应处理
arc-proto-h2           HTTP/2 帧、流与流控处理
arc-plugins            Wasmtime 集成与请求钩子 ABI
arc-observability      指标与管理端点
arc-logging            NDJSON 日志管线与轮转
arc-cli                运维 CLI 命令
arc-rate-limit         本地 GCRA 限流器
arc-common             共享错误与结果类型
下一步:阅读 架构说明 了解请求流转和依赖关系。