bevyengine/bevy
Packages
Bevy is a Cargo workspace of ~60 crates, all named bevy_* and all under crates/. The bevy umbrella crate at the workspace root is just a re-export of bevy_internal, which itself depends on most of the others. Most of the time you depend on bevy and toggle features; once you understand the workspace you can also depend on individual bevy_* crates directly.
This section has one page per crate. Pages are concise — they describe purpose, key types, and entry points for modification. Use them as jumping-off points into crates/<name>/src/.
How to read a package page
Each page follows the same structure:
- Purpose — what the crate does, in 2–3 sentences.
- Key types — the public surface that matters most.
- How it works — internal architecture, with diagrams when they help.
- Integration points — what it depends on and what depends on it.
- Entry points for modification — where to look first when changing the crate.
Crate map by domain
The 60 official crates organize naturally into a few clusters.
Foundations
| Crate | Files | Purpose |
|---|---|---|
bevy_app |
13 | The App, plugins, schedules, panic and signal handling. |
bevy_ecs |
154 | The Entity Component System. |
bevy_reflect |
141 | Runtime reflection for Rust types. |
bevy_internal |
3 | The DefaultPlugins group; re-exports of all subordinate crates. |
bevy_math |
46 | Vectors, matrices, curves, geometric primitives, easing. |
bevy_color |
23 | Color types and color-space conversions. |
bevy_tasks |
11 | Task pools, async helpers. |
bevy_platform |
26 | Cross-platform shims (time, HashMap, atomics) for no_std. |
bevy_utils |
9 | Small helpers used across the workspace. |
bevy_ptr |
1 | Tiny crate for type-erased pointer helpers. |
bevy_derive |
4 | The #[derive(Deref)], #[derive(DerefMut)], etc. helpers. |
bevy_macro_utils |
10 | Shared utilities used by Bevy's proc macros. |
bevy_encase_derive |
1 | Derive bridge for the encase GPU-buffer encoding crate. |
bevy_dylib |
1 | Dummy crate that re-exports bevy as a .dylib/.so for fast compiles. |
Time and lifecycle
| Crate | Files | Purpose |
|---|---|---|
bevy_time |
9 | Frame time, fixed-timestep accumulator, virtual/real clocks. |
bevy_diagnostic |
7 | Time-windowed measurement registry (FPS, entity count, etc). |
bevy_state |
15 | Typed state machines (Menu/Game/Paused). |
bevy_log |
3 | tracing/log integration, panic-hook installer. |
bevy_transform |
9 | Local + global transforms, propagation systems. |
bevy_settings |
3 | User-preference loader/saver. |
bevy_a11y |
1 | AccessKit integration for accessibility. |
Assets, scenes, and serialization
| Crate | Files | Purpose |
|---|---|---|
bevy_asset |
37 | Loader, server, processor, hot-reload. |
bevy_scene |
8 | Spawning saved/loaded scenes into a world. |
bevy_world_serialization |
10 | The BSN format, scene save/load. |
bevy_gltf |
16 | glTF 2.0 loader. |
Rendering
| Crate | Files | Purpose |
|---|---|---|
bevy_render |
71 | Render SubApp, render graph, GPU resource management. |
bevy_core_pipeline |
28 | Shared 2D/3D core (clear, depth prepass, tonemapping, bloom, MSAA). |
bevy_pbr |
59 | PBR materials, lights, shadows, deferred pipeline. |
bevy_camera |
9 | Camera component, projections, culling primitives. |
bevy_camera_controller |
3 | Free-look / orbit camera helpers for examples. |
bevy_mesh |
25 | Mesh data, attributes, primitive meshing. |
bevy_image |
15 | Image / texture asset types. |
bevy_material |
9 | The Material trait, asset glue. |
bevy_light |
14 | Point, spot, directional lights and clustered shading. |
bevy_shader |
3 | Shader asset types (WGSL/SPIR-V). |
bevy_anti_alias |
11 | FXAA, SMAA, TAA, contrast-adaptive sharpening. |
bevy_post_process |
18 | DOF, bloom, chromatic aberration, motion blur. |
bevy_solari |
14 | Experimental ray-traced GI. |
bevy_sprite |
8 | 2D sprite components. |
bevy_sprite_render |
15 | 2D sprite renderer. |
bevy_gizmos |
22 | Immediate-mode debug drawing API. |
bevy_gizmos_render |
5 | Renderer for bevy_gizmos. |
bevy_text |
15 | Text shaping, rendering, font assets. |
Animation
| Crate | Files | Purpose |
|---|---|---|
bevy_animation |
9 | Skeletal and morph-target animation, animation graph. |
Input, windowing, and platform
| Crate | Files | Purpose |
|---|---|---|
bevy_window |
9 | Window component, events, mode types. |
bevy_winit |
10 | winit integration: event loop, swapchain handling. |
bevy_input |
9 | Keyboard, mouse, touch, gamepad button state. |
bevy_input_focus |
6 | Which entity receives keyboard input. |
bevy_gilrs |
4 | gilrs gamepad backend. |
bevy_clipboard |
1 | Clipboard read/write resource. |
bevy_android |
1 | Android-specific platform glue. |
UI
| Crate | Files | Purpose |
|---|---|---|
bevy_ui |
26 | UI nodes, flexbox layout via taffy, focus, rendering data. |
bevy_ui_render |
10 | Renderer for UI nodes. |
bevy_ui_widgets |
10 | Composed widget primitives (buttons, sliders, scrollbars). |
bevy_feathers |
33 | Bevy's built-in widget set and theme. |
Audio
| Crate | Files | Purpose |
|---|---|---|
bevy_audio |
7 | rodio-based audio playback, spatial audio. |
Picking
| Crate | Files | Purpose |
|---|---|---|
bevy_picking |
10 | Picking core: pointers, hits, events. |
Tooling and remote inspection
| Crate | Files | Purpose |
|---|---|---|
bevy_dev_tools |
15 | FPS overlay, state inspector, debug helpers. |
bevy_remote |
6 | The Bevy Remote Protocol (BRP) — JSON-RPC over HTTP. |
Reading order for new contributors
bevy_app— understandApp, plugins, schedules.bevy_ecs— the data model.bevy_reflect— runtime reflection.bevy_asset— how assets get into the world.bevy_render— the render SubApp.- Then whichever subsystem your task lives in.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.