Rush build cache server, built for speed

A high-performance HTTP caching server written in Rust for Rush monorepos. Streams artifacts directly to S3-compatible storage with dual-tier authentication and zero memory overhead.

Works with popular S3-compatible providers:

Amazon S3Cloudflare R2MinIORustFS

Why Rush Cache Server?

Purpose-built for Rush monorepos. Never rebuild the same artifacts twice.

Built with Rust

Single binary, no runtime dependencies. Built on Actix-web and Tokio for maximum throughput. Starts in under a second.

S3-Compatible Storage

Works with Amazon S3, Cloudflare R2, MinIO, RustFS, and any S3-compatible object store out of the box.

Dual-Tier Authentication

Separate read-only tokens for developers and read-write tokens for CI. No publicly accessible S3 buckets needed.

Streaming Architecture

Artifacts stream directly between clients and S3 without buffering in memory. Constant memory usage regardless of artifact size.

OpenTelemetry Built-in

Native OTLP/gRPC distributed tracing and metrics. Works with Datadog, Honeycomb, Jaeger, and Prometheus.

Minimal Footprint

Scratch-based Docker image at just a few megabytes. ~50 MB baseline memory. Deploy on the smallest instances.

Deploy your way

Three deployment options to match your infrastructure. Same performance everywhere.

GitHub Action

Drop-in action for GitHub workflows. Starts as a background service with automatic health checking.

  • Zero configuration
  • Automatic startup and shutdown
  • Built-in health checks

Docker Container

Universal deployment with the official GHCR image. Works with GitLab CI, Jenkins, or any system that runs containers.

  • Any CI provider
  • Self-hosted or cloud
  • Linux AMD64 and ARM64

Kubernetes

Production-grade deployment with sample manifests. Graceful shutdown via SIGTERM, minimal resource requirements.

  • Liveness and readiness probes
  • Multi-replica support
  • 100m CPU / 64Mi memory

Get started in minutes

Copy-paste examples for your preferred deployment method.

GitHub Action

Recommended
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Rush Cache Server
        uses: brunojppb/rush-cache-server@v1
        env:
          S3_BUCKET: my-rush-cache
          S3_REGION: us-east-1
          S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
          S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
          CACHE_TOKENS_READ_ONLY: ${{ secrets.CACHE_TOKEN_RO }}
          CACHE_TOKENS_READ_WRITE: ${{ secrets.CACHE_TOKEN_RW }}

      - name: Build
        run: rush build

Docker

GitLab CI, Jenkins, etc.
docker run -p 8080:8080 \
  -e S3_BUCKET=my-rush-cache \
  -e S3_REGION=us-east-1 \
  -e S3_ACCESS_KEY=your-access-key \
  -e S3_SECRET_KEY=your-secret-key \
  -e CACHE_TOKENS_READ_ONLY=tok_ro_dev1 \
  -e CACHE_TOKENS_READ_WRITE=tok_rw_ci \
  ghcr.io/brunojppb/rush-cache-server:latest