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:
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
Recommendedjobs:
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 buildDocker
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