denoland/deno
By the numbers
Data collected on 2026-04-30 from commit 592a9c4225188994d04c572f5eaac79eebd7dcb3 on main.
A quantitative snapshot of the denoland/deno repository — useful for anyone trying to size up the codebase before diving in.
Size
xychart-beta horizontal
title "Lines of code by language"
x-axis ["Rust", "JavaScript", "TypeScript"]
y-axis "Lines" 0 --> 600000
bar [504024, 267612, 187813]| Language | Lines | Where |
|---|---|---|
| Rust | ~504K | cli/, runtime/, ext/, libs/, tests/ |
| JavaScript | ~268K | Extension JS in ext/*/ (e.g., Node polyfills, web platform JS), tests/ |
| TypeScript | ~188K (excluding tests/) |
LSP infra, type definitions, tools/, runtime polyfills |
The repo as a whole has ~922 Rust files, ~2,858 TypeScript files, and ~1,132 JavaScript files (excluding .git/).
Workspace shape
| Component | Count |
|---|---|
| Cargo workspace members | ~70 crates |
ext/ extension crates |
31 |
libs/ reusable crates |
24 |
cli/ member crates |
4 (cli, cli/lib, cli/rt, cli/snapshot) |
runtime/ member crates |
4 (runtime, runtime/features, runtime/permissions, runtime/subprocess_windows) |
tests/ member crates |
9 |
Largest source files
The 10 longest Rust files by line count:
| File | Lines |
|---|---|
tests/integration/lsp_tests.rs |
19,909 |
cli/args/flags.rs |
15,873 |
runtime/permissions/lib.rs |
10,921 |
libs/npm/resolution/graph.rs |
9,478 |
cli/lsp/tsc.rs |
7,137 |
libs/config/workspace/mod.rs |
6,815 |
libs/node_shim/lib.rs |
5,006 |
cli/lsp/language_server.rs |
4,580 |
ext/napi/js_native_api.rs |
4,135 |
libs/eszip/v2.rs |
4,018 |
The size of cli/args/flags.rs reflects Deno's CLI surface — every subcommand and every flag is parsed there.
Inside cli/
The 10 longest top-level files in cli/:
| File | Lines |
|---|---|
cli/module_loader.rs |
1,668 |
cli/factory.rs |
1,441 |
cli/lib.rs |
1,265 |
cli/file_fetcher.rs |
1,234 |
cli/graph_util.rs |
1,195 |
cli/type_checker.rs |
1,138 |
cli/http_util.rs |
841 |
cli/npm.rs |
736 |
cli/worker.rs |
659 |
cli/cdp.rs |
~500 |
Activity
- Total commits on
main: ~15,755 - First commit: 2018-05-13 (8 years of history)
- Most recent commit (at snapshot): 2026-04-29
- Active git authors (all-time, by commit email): 1,239
- Bot-attributed commits (
denobot,dependabot,github-actions):526 (3.3% of total). This is a lower bound on automated work — inline AI tools that don't leave a trail in git history are not counted.
Top contributors since 2024-01-01 (by commit count)
These are the people most likely to know the recent state of the codebase. Listed for context; the per-page byline is what you actually want when looking for an owner of a specific subsystem.
| # | Author |
|---|---|
| 1 | Bartek Iwańczuk |
| 2 | David Sherret |
| 3 | Divy Srivastava |
| 4 | Nathan Whitaker |
| 5 | Nayeem Rahman |
| 6 | Asher Gomez |
| 7 | Yoshiya Hinosawa |
| 8 | Leo Kettmeir |
| 9 | Marvin Hagemeister |
| 10 | Luca Casonato |
Code health signals
- TODO/FIXME/HACK comments in Rust: ~480
- Lint plugins: 1 dedicated to project-specific rules (
tools/lint_plugins/) - Generated workflow files in
.github/workflows/: 11 YAML files generated from sibling.tsscripts (the source of truth)
Releases
- Tagged releases: hundreds, from
v0.0.1up through the currentv2.7.xline. The earliest tag isv0.0.1, v1.0 was tagged 2020-05-14, v2.0 was 2024-10-08, v2.5.0 was 2025-09-10, v2.7.0 was 2026-02-25.
Cross-cutting stats
| Metric | Value |
|---|---|
Workspace dependencies pinned in Cargo.toml |
~30 deno_* crates plus a long list of third-party deps |
| Submodules | a handful (test fixtures, WPT, std lib, node-compat) |
| Tests directories | tests/specs/, tests/unit/, tests/unit_node/, tests/wpt/, tests/node_compat/, tests/integration/, tests/napi/, tests/ffi/ |
For history and trajectory, see Lore. For trivia, see Fun facts.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.