bevyengine/bevy
By the numbers
Data collected on 2026-04-30 at commit 9c13183034.
This page is the quantitative profile of the Bevy codebase: how big it is, how active it is, where the churn lives. Numbers come from git log and find/wc over the working tree.
Size
Bevy is a multi-crate Rust workspace. The vast majority of the code is Rust, with WGSL shaders as the second-largest source of "code" by file count.
xychart-beta horizontal
title "Source files by language"
x-axis ["Rust (.rs)", "WGSL (.wgsl)", "Markdown (.md)", "TOML (.toml)"]
y-axis "Files"
bar [1779, 193, 223, 95]| Metric | Value |
|---|---|
| Rust source files | 1,779 |
| Rust lines (incl. tests/examples/comments) | ~580,000 |
| WGSL shader files | 193 |
Example targets (examples/**/*.rs) |
430 |
Test files (tests/, tests-integration/, benches/) |
105 |
| Markdown files (docs, READMEs, release notes) | 223 |
| Workspace members | ~70 (60 bevy_* crates + tools/examples/tests) |
Cargo workspace Cargo.toml lines |
~3,400 |
The bevy umbrella crate (src/lib.rs) is just 2.4 KB — it re-exports bevy_internal::*. The real code is under crates/.
Crates by file count
The biggest crates by Rust file count are the foundational systems (ECS, reflection, render, PBR, math, asset). Many of the smallest crates (bevy_a11y, bevy_dylib, bevy_ptr) are single-file shims that exist for compile-time gating.
| Crate | *.rs files |
|---|---|
bevy_ecs |
154 |
bevy_reflect |
141 |
bevy_render |
71 |
bevy_pbr |
59 |
bevy_math |
46 |
bevy_asset |
37 |
bevy_feathers |
33 |
bevy_core_pipeline |
28 |
bevy_ui |
26 |
bevy_platform |
26 |
bevy_mesh |
25 |
bevy_color |
23 |
bevy_gizmos |
22 |
bevy_post_process |
18 |
bevy_gltf |
16 |
A complete list is on the packages index.
Activity
Bevy is one of the most actively developed Rust projects on GitHub.
| Metric | Value |
|---|---|
Total commits on main |
11,324 |
| Commits in the last 90 days | 700 |
| Average commits/day (last 90 days) | ~7.8 |
| First commit | 2019-11-12 |
Latest commit on main |
2026-04-30 |
| Span of active development | ~6 years 5 months |
| Unique commit author emails (all-time) | ~1,570 |
The 700-commit, ~8-per-day rate has been roughly steady through 2024–2026, with bumps around release cycles (every three months).
Bot-attributed commits
Bevy has light bot involvement compared with many proprietary codebases. The git log shows ~187 commits with [bot] co-authorship out of 11,324 — about 1.7%. This is a lower bound on AI-assisted work since inline tools like Copilot leave no trace in git history.
The visible bots are mostly dependabot (dependency bumps), github-actions[bot] (release prep, automated PRs), and a few one-off automation accounts. The Bevy project does not currently use factory-droid or similar code-generation bots in this repo.
Hot files
The 90-day churn (files with the most commits over the last quarter) clusters in the rendering and ECS subsystems, which is consistent with Bevy's ongoing rendering rewrites and ECS refinements. Notable hot directories from manual inspection of recent PRs:
crates/bevy_pbr/src/render/— PBR pipeline plumbing.crates/bevy_ecs/src/schedule/— scheduler iteration.crates/bevy_ui/src/— UI node system.crates/bevy_feathers/src/— built-in widgets (newer crate; lots of churn).crates/bevy_solari/src/— experimental ray-traced GI.
Comments and TODOs
A scan of *.rs files for TODO|FIXME|HACK produced:
| Metric | Value |
|---|---|
| Files with at least one TODO/FIXME/HACK | 149 |
| Total TODO/FIXME/HACK occurrences | 255 |
So roughly 8% of Rust files carry a maintenance marker. That's healthy for a project of this size and one that does breaking releases every quarter (TODOs often gate on a future API change).
Test-to-code ratio
Bevy's testing is a mix of inline #[cfg(test)] modules, an integration-test crate (tests-integration/), the examples/ directory used as smoke tests by CI, and compile_fail trybuild harnesses for the derive macros.
| Bucket | File count |
|---|---|
| Examples (smoke-tested in CI) | 430 |
| Integration test files | 105 |
Inline #[cfg(test)] modules |
several hundred (every major crate) |
Test coverage is not formally measured, but every Rust file in bevy_ecs, bevy_reflect, bevy_math, and bevy_app carries a sizable inline test module.
See also
- Lore — the historical narrative behind these numbers.
- Cleanup opportunities — not generated for Bevy (the project's own tracker is on GitHub Issues).
- Maintainers — who works on what.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.