# Deno vs Node.js: source lines of code compared

The Deno vs Node.js comparison on OctoCounts shows side-by-side source line counts for denoland/deno and nodejs/node, counted with the same engine and analysis options on the dates shown in the methodology line: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.

As of 2026-09-16, denoland/deno contains 1,193,562 total lines (947,176 code) across 2,021 files, while nodejs/node contains 12,549,211 total lines (9,933,725 code) across 18,430 files as of 2026-09-16. nodejs/node is about 10x the size of denoland/deno by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [denoland/deno](https://octocounts.com/github/denoland/deno) | [nodejs/node](https://octocounts.com/github/nodejs/node) |
| --- | ---: | ---: |
| Files | 2,021 | 18,430 |
| Total lines | 1,193,562 | 12,549,211 |
| Code lines | 947,176 | 9,933,725 |
| Comment lines | 171,075 | 1,401,721 |
| Blank lines | 75,311 | 1,213,765 |
| Languages counted | 12 | 12 |

Top languages in denoland/deno: Rust (53.2% of code), JavaScript (29.4% of code), TypeScript (14.9% of code). Top languages in nodejs/node: C Header (20.9% of code), GNU Style Assembly (19.1% of code), Perl (17.5% of code). C appears in both top language lists; Rust, JavaScript, TypeScript, TOML appear only in denoland/deno's top languages; C Header, GNU Style Assembly, Perl, C++ appear only in nodejs/node's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. denoland/deno was counted at ref 685eb3b4b4ffaf2770480b8a99021e8b03292786 (commit 685eb3b4b4ff) on 2026-09-16; nodejs/node was counted at ref edc61b14de8e72af563a69b4356543717e1c235e (commit edc61b14de8e) on 2026-09-16. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

denoland/deno counts the Deno runtime repository: the Rust core that embeds V8, the TypeScript/JavaScript runtime and standard-library surface, the CLI, and tooling. nodejs/node counts the Node.js repository: the C/C++ runtime and bindings, the JavaScript standard library under lib/, and vendored third-party sources under deps/. Neither count includes V8's own source; both consume it at build time. Both trees were counted on the dates in the methodology line above.

The per-language tables show the implementation-language split directly: Deno's counted code is predominantly Rust, while Node's is largely C/C++ plus JavaScript for the standard library — the same runtime role expressed through each project's chosen systems language.

A substantial share of both counts is JavaScript rather than native code: in Deno it is much of the public runtime and standard-library surface, in Node it is the lib/ standard library, so much of each repository is API surface above the native bindings.

_These counts do not measure runtime performance, startup time, or compatibility with the existing npm ecosystem — those are properties of the shipped binaries, not of the repositories' line counts._

Sources: [denoland/deno repository](https://github.com/denoland/deno) · [nodejs/node repository](https://github.com/nodejs/node). Statements verified 2026-09-16.

Evidence and next steps:

- [denoland/deno SLOC report](https://octocounts.com/github/denoland/deno)
- [nodejs/node SLOC report](https://octocounts.com/github/nodejs/node)
- [Compare denoland/deno and nodejs/node interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Fdenoland%2Fdeno&right=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode)

Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.

## Compare FAQ

### Which has more lines of code, denoland/deno or nodejs/node?

nodejs/node has more code: 9,933,725 code lines versus 947,176 for denoland/deno, about 10x as much, based on cached OctoCounts reports as of 2026-09-16.

### Does more source lines of code mean more complexity?

Not necessarily. SLOC measures size, not complexity, quality, or maintainability. A larger codebase can mean more features, more generated or vendored code, more verbose language idioms, or more tests — none of which imply the code is harder to work with. Use SLOC to gauge the scale of what you'd be reading or maintaining, not as a quality signal for denoland/deno, nodejs/node, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. denoland/deno was counted at ref 685eb3b4b4ffaf2770480b8a99021e8b03292786 (commit 685eb3b4b4ff) on 2026-09-16; nodejs/node was counted at ref edc61b14de8e72af563a69b4356543717e1c235e (commit edc61b14de8e) on 2026-09-16. See the counting methodology for ignored directories and analysis options.

### Can I compare a different branch, tag, or commit?

Yes. This page shows the default branch for each repository. Use the interactive comparison tool to pick any public GitHub repository, branch, tag, or commit SHA for both sides and get a fresh side-by-side report.

## Related OctoCounts pages

- [Interactive repository comparison](https://octocounts.com/compare)
- [Recently analyzed repositories](https://octocounts.com/recent)
- [Popular SLOC reports](https://octocounts.com/popular)
- [Trending GitHub repositories](https://octocounts.com/trending)
- [Hall of Monoliths](https://octocounts.com/hall-of-monoliths)
- [Original research: how filtering changes SLOC counts](https://octocounts.com/research)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [SLOC and code metrics glossary](https://octocounts.com/docs/glossary)
- [OctoCounts API docs](https://octocounts.com/docs/api)
