Skip to main content

Documentation Index

Fetch the complete documentation index at: https://arc.sdjz.wiki/llms.txt

Use this file to discover all available pages before exploring further.

Use this page as the fastest path to understand Arc, run it locally, and jump to the right document for your task.

Get started in 5 minutes

Install and run arc-gateway with a minimal config.

Understand architecture

Learn thread-per-core design, request flow, and crate boundaries.

Configure production behavior

Configure listeners, routes, upstreams, plugins, and runtime options.

Operate safely

Review limits, protections, TLS posture, and hardening guidance.

Why Arc

Most reverse proxies rely on event-loop coordination that adds syscall and cross-thread overhead under load. Arc uses one worker per CPU core with dedicated resources, so request handling stays predictable at high concurrency.

Quick start

1

Install Arc

curl -fsSL https://raw.githubusercontent.com/shuakami/Arc/master/install.sh | sh
arc-gateway --help
Arc installs the latest GitHub Release binary to /usr/local/bin/arc-gateway.
2

Create a minimal config

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

Run Arc

arc-gateway --config arc.yaml
4

Verify expected behavior

curl http://localhost:8080/
curl http://localhost:9090/healthz
curl http://localhost:9090/metrics
If Arc is running correctly, :8080 proxies to your upstream, /healthz returns ok, and /metrics returns Prometheus text output.

Key capabilities

CapabilityWhat you get
io_uring data planeLow-overhead request path with fixed buffers and ring-based I/O.
Thread-per-core workersPredictable latency by avoiding cross-worker shared-state contention.
HTTP/1.1 and HTTP/2Modern protocol coverage for common ingress and internal traffic.
TLS and ACMERustls termination and automated certificate lifecycle workflows.
WASM pluginsRequest filtering and extension points without rebuilding core proxy logic.
Rate limitingRoute-level and global controls for burst and abuse protection.
ObservabilityPrometheus metrics, access logs, and tracing-friendly telemetry.

Documentation map

Getting started

Install, configure, and run Arc quickly.

Deployment

Run Arc on systemd, containers, or Kubernetes.

Configuration

Full reference for config fields and behavior.

Traffic management

Routing, matching, plugins, and mirroring.

TLS and certificates

TLS setup, certificate automation, and rotation guidance.

Security

Hardening, safeguards, and risk controls.

Observability

Metrics, logs, and tracing integration.

Control plane API

Manage runtime behavior through HTTP endpoints.

CLI

Use operational commands for log tailing and querying.

Benchmarks

Run and interpret performance benchmarks.

Internal crate layout

arc-gateway            Main proxy state machine and worker lifecycle
arc-config             Config schema, compilation, and hot reload wiring
arc-core               Shared core types
arc-net                io_uring wrappers, buffer pool, and socket operations
arc-router             Route compilation and matching
arc-acme               ACME challenge and certificate lifecycle
arc-global-rate-limit  Cluster-aware limiting with Redis backend
arc-proto-http1        HTTP/1.x parser and response handling
arc-proto-h2           HTTP/2 frame, stream, and flow-control handling
arc-plugins            Wasmtime integration and request hook ABI
arc-observability      Metrics and admin server endpoints
arc-logging            NDJSON log pipeline and rotation
arc-cli                Operational CLI commands
arc-rate-limit         Local GCRA limiter
arc-common             Shared error and result types
Next step: read Architecture for request flow and dependency relationships.