vllm-project/vllm
Fun facts
A few pieces of trivia about the codebase.
The longest Python file is the GPU forward pass
vllm/v1/worker/gpu_model_runner.py is ~7,070 lines long. It is the per-GPU orchestrator for one model step: it builds the model inputs, dispatches CUDA graphs, runs the model, talks to the sampler, runs spec decode, runs the KV connector, and ferries outputs back. If you are looking for "where the forward pass actually happens," it is here. The closest runner-up, vllm/engine/arg_utils.py at 2,476 lines, is fully generated argparse boilerplate.
The model registry knows ~290 architectures
vllm/model_executor/models/registry.py is one of the largest non-runner Python files in the repo (55 KB). It maps every supported architecture string to its implementation class. The directory 110 KB).vllm/model_executor/models/ contains 293 Python files, including dedicated modules for variants like qwen3_omni_moe_thinker.py (a 91 KB file — the largest single model implementation), gemma4.py and gemma4_mm.py (combined ~125 KB), and qwen3_vl.py (
The oldest surviving code is from the very first day
vllm/__init__.py and the OPT model implementation (vllm/model_executor/models/opt.py) trace back to commits on 2023-02-09, the day the public history begins. The first commit message in the repository is simply "Initial commit" by Woosuk Kwon at 11:24 UTC. Two minutes later, the second commit added OPT. The file structure has been heavily refactored since, but opt.py is still here, still imported, still in the registry.
Releases are frequent
The repository has well over 160 git tags. Tags follow v0.X.Y and v0.X.YrcN conventions; the most recent in the local clone is v0.20.1rc0. Pre-release candidates are tagged for nearly every minor release.
AGENTS.md bans pure code-agent PRs
vLLM's contribution policy explicitly prohibits "pure code-agent PRs." Every change must have a human submitter who has reviewed every line and run the relevant tests. PRs using AI assistance must include a clear statement of that fact in the description. Breaching the rules can result in being banned. The full text is in AGENTS.md.
Typo allowlist
pyproject.toml's [tool.typos.default.extend-identifiers] and extend-words sections are a small museum of intentional misspellings the project has had to whitelist: cudaDevAttrMaxSharedMemoryPerBlockOptin, nin_shortcut, inverse_std_variences, ser_de, pard_token, view_seperator, plus low-level Intel CPU mnemonics (tme, Pn, VALU) and CUTE DSL identifiers (Thr, CPY, setp). Each entry is a typo the linter would otherwise flag as a bug.
Two configuration files are bigger than most projects
vllm/config/vllm.py and vllm/config/model.py clock in at ~88 KB each. vllm/config/compilation.py and vllm/config/parallel.py are ~65 KB and ~40 KB respectively. The configuration surface is large enough that vLLM ships its own argparse generator (vllm/utils/argparse_utils.py::FlexibleArgumentParser) just to render --help=<ConfigGroup> views.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.