Open source · Apache-2.0
Pull a model once. Serve the fleet from local disk.
Pulsys is an authenticated pull-through cache for Hugging Face. Point HF_ENDPOINT at it: the first request fills local disk; every later request is a warm hit. That is CI and GPU time you stop spending on the public internet.
$ export HF_ENDPOINT=http://localhost:8082
$ export HF_TOKEN=pulsys_...
$ hf download Qwen/Qwen2.5-7B-Instruct
Resolving data files...
Download complete- Apache-2.0
- Docker Compose
- Helm
- SLSA 3
- Self-hosted
Repeat downloads are the expensive part.
CI jobs and training nodes often re-pull the same weights on every run. A pull-through cache collapses that into one upstream fill and local-disk warm hits.
Measured warm path
- 1.36Mreq/s @ 4 KiB (loopback)
- 90 GB/sthroughput @ 16 MiB
- c7i.12xlarge48 vCPU · saturate-iouring
- io_uringLinux warm path
Reference run: c7i.12xlarge, 48 vCPU, kernel 6.1.176-221.360.amzn2023.x86_64, variantsaturate-iouring. Generated 2026-07-13T21:16:33Z. Reproduce via thebenchmarks doc.
What changes when you put Pulsys in front
No client rewrites
Set
HF_ENDPOINTto Pulsys.huggingface_hub,transformers,datasets, and thehfCLI keep working.One upstream fill
The first miss streams from Hugging Face onto local disk. Later requests are served from cache.
Warm path at the kernel
Warm hits use io_uring on Linux 6.1+ and
sendfileon macOS. Reference EC2 run (1.36M req/s, 90 GB/s) and reproduction steps live in the benchmarks doc.Authenticated by default
Every request needs a
pulsys_*API key from the admin console. Client credentials never reach Hugging Face.Pre-warm before traffic
Queue a repo in the console. A background job fills the cache so the fleet starts warm.
Offline after fill
Strict-offline mode serves cached artifacts with zero upstream egress.
Where the cost shows up
CI fleets
The same model on every job should not re-cross the public internet. Point
HF_ENDPOINTat Pulsys and the second pull is local.Training clusters
Idle accelerators waiting on egress are the real price of a cold pull. Warm hits stream from local disk.
Air-gapped networks
Pre-warm where there is connectivity, then serve the isolated network with no upstream dependency.
How it fits
Deploy with Docker Compose or Helm
export PULSYS_HF_TOKEN=hf_your_readonly_token
docker compose up --buildexport HF_ENDPOINT=http://localhost:8082
export HF_TOKEN=pulsys_...
hf download Qwen/Qwen2.5-7B-InstructFAQ
Which clients work?
Any client that speaks the Hugging Face Hub wire protocol. Set HF_ENDPOINT to Pulsys and use a pulsys_* API key as HF_TOKEN.
Where do credentials live?
Pulsys holds a read-only Hugging Face token (PULSYS_HF_TOKEN) for cache misses. Clients use Pulsys API keys from the admin UI. See the security doc.
Can instances share EFS or S3?
No. The warm path assumes local disk. Shared filesystems cap throughput below local disk.
How do I pre-warm the cache?
Pull through the proxy once, or queue an import from the admin console before traffic arrives.