vllm-project/vllm
Lore
The story of how vLLM evolved, derived from git tags, commit timestamps, and directory creation dates.
Eras
The PagedAttention paper (Feb–Jun 2023)
vLLM's first commit landed on 2023-02-09 by Woosuk Kwon. The codebase started life as the reference implementation for the PagedAttention paper. The earliest commits show the shape of an academic prototype: an Add OPT commit and an Add blocks commit appear within the first three days. The first tagged release, v0.1.0, followed in the summer of 2023.
Key events:
- Feb 2023 — Initial commit; OPT model and block manager.
- Jun 2023 — PagedAttention announcement and v0.1.0.
- Sep 2023 —
[FIX] Fix Alibi implementation in PagedAttention kernel (#945)— the first PR to mention PagedAttention by name in a commit message.
Production-ization (Jul 2023 – early 2024)
The project rapidly added what users expected from a serving engine: an OpenAI-compatible API server (vllm/entrypoints/openai/), tensor parallelism across multiple GPUs, model loading from Hugging Face, beam search, streaming, prefix caching (initial implementation), and the first wave of quantization (AWQ, GPTQ).
- Jan 2024 — LoRA support added (
vllm/lora/first appears 2024-01-23). - Q1 2024 — Continuous batching and chunked prefill stabilize.
- Q2 2024 — ROCm support matures; the
vllm/distributed/parallel state takes shape.
Multimodal and the model zoo (Jun 2024 onward)
- Jun 2024 —
vllm/multimodal/lands (2024-06-02). LLaVA was the first multimodal architecture; the directory's growth maps directly onto the model zoo's expansion. - Aug 2024 —
vllm/compilation/is created (2024-08-28), introducing torch.compile + custom-pass support for piecewise CUDA graphs.
V1 — the rewrite (Oct 2024 – early 2025)
The most consequential change in the project's history. PR #9289 ("[V1] Implement vLLM V1 [1/N]") landed on 2024-10-22 and introduced the vllm/v1/ tree alongside the legacy V0 engine. V1 was async-first, multi-process by default, and rebuilt the scheduler, KV cache manager, sampler, and worker around a much cleaner separation between EngineCore and front-ends.
For several months the two engines coexisted (controlled by VLLM_USE_V1). Over 2025 the V0 paths were gradually deleted; today only V1 ships. The engine/ directory at the repo root is now a thin compatibility shim — vllm/engine/llm_engine.py and vllm/engine/async_llm_engine.py are 7- and 11-line forwarding modules pointing at vllm/v1/engine/.
- Oct 2024 — V1 [1/N] lands.
- Nov 2024 — V1 prefix caching (
#9972). - Dec 2024 —
vllm/distributed/kv_transfer/lands (2024-12-01), enabling disaggregated prefill. - Feb 2025 —
vllm/v1/spec_decode/directory created (2025-02-15). - 2025 — V0 is deprecated and progressively removed;
EngineArgs(vllm/engine/arg_utils.py) grows to 2,500 lines as it absorbs all V1 knobs.
MoE, quantization, and hardware diversity (2025)
The bulk of 2025 was spent on three fronts:
- MoE at scale.
vllm/model_executor/layers/fused_moe/swelled to ~30 files. Expert-parallel load balancing (vllm/distributed/eplb/) and elastic EP (vllm/distributed/elastic_ep/) appeared. CUTLASS-, Marlin-, AITER-, and FlashInfer-based MoE paths coexist. - Quantization breadth. New backends:
mxfp4,nvfp4(modelopt),humming,inc,quark,turboquant,torchao, plus thecompressed-tensorsintegration. - Hardware breadth.
vllm/platforms/expanded to cover CUDA, ROCm, CPU, XPU, TPU (plugin), andzen_cpu. Many more vendors ship as out-of-tree plugins.
Speculative decoding consolidated into vllm/v1/spec_decode/, with n-gram, suffix, EAGLE, EAGLE3, DFlash, MTP, Medusa, and llm-base-proposer all in tree.
The current era (Q1 2026)
- Disaggregated everything. KV connectors (
vllm/distributed/kv_transfer/kv_connector/), encoder-cache connectors (vllm/distributed/ec_transfer/), weight transfer (vllm/distributed/weight_transfer/), and the elastic-EP middleware enable serving topologies where prefill, decode, and even encoders run on separate machines. - Multi-frontend. The OpenAI server is now one of several: Anthropic Messages, gRPC, MCP, SageMaker, and a "realtime" speech-to-text frontend all live alongside it.
- API server replication.
--api-server-countlets you fan out the FastAPI process across cores/machines while keeping a single EngineCore.
Longest-standing features
| Feature | First appeared | Status today |
|---|---|---|
| PagedAttention | Feb 2023 | Still the foundation; block-based KV cache layout unchanged |
| OPT model | Feb 2023 | Still in vllm/model_executor/models/opt.py |
| Tensor parallelism | Mid 2023 | Heavily evolved; lives in vllm/distributed/parallel_state.py |
| OpenAI-compatible server | Mid 2023 | Still the main HTTP entrypoint |
| Prefix caching | 2023 (V0), reborn 2024 (V1) | Default-on in V1 |
| LoRA | Jan 2024 | Now also supports MoE LoRA |
| AWQ / GPTQ | 2023–2024 | Joined by ~15 other quantization formats |
Major rewrites
- V0 → V1 engine (Oct 2024 – 2025). The largest rewrite. Replaced the synchronous, single-process engine with an async, multi-process design. Touched almost every directory.
config/split (2024). What used to be a singleconfig.pywas broken into ~25 typed dataclasses undervllm/config/.- Engine arg parsing (ongoing).
EngineArgs/AsyncEngineArgsmigrated from per-argargparsecalls to a config-driven generator (vllm/utils/argparse_utils.py+vllm/config/utils.py).arg_utils.pyis now a single 2,500-line generator that introspectsVllmConfig.
Deprecated features (visible in the tree)
- The
engine/shim.vllm/engine/{llm_engine,async_llm_engine}.pyare now 7-line stubs that re-export fromvllm/v1/engine/. They exist only for downstream import compatibility. SequenceGroup/ V0 scheduler primitives — removed; only references remain in tests and invllm/sequence.py(now a 2 KB shim).- Old PagedAttention CUDA kernel. Survives in
csrc/attention/for the CPU/ROCm fallback path; on NVIDIA the FlashAttention/FlashInfer/Triton paths dominate.
Growth trajectory
- Year 1 (2023): ~600 commits, single maintainer dominated.
- Year 2 (2024): ~3,400 commits, top contributors broaden (Cyrus Leung, Michael Goin, Roger Wang, youkaichao, Harry Mellor).
- Year 3 (2025): ~12,000 commits, contributor base hits 2,000+, hardware diversification accelerates.
- 2026 so far: continued ~1,000 commits/month; ~2,400 unique committer names total.
For a tabular view of the eras and current owners, see maintainers.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.