bevyengine/bevy
Glossary
Bevy has its own vocabulary borrowed partly from the broader ECS literature and partly invented for the engine. This glossary defines the terms you will see in the source most often. Each entry links to the file or crate where the type lives.
Core ECS
App — The top-level container that owns sub-apps, plugins, and the main runner. Defined in crates/bevy_app/src/app.rs. See bevy_app.
SubApp — A self-contained "mini-app" with its own World and schedules. The renderer runs in a separate RenderSubApp. Defined in crates/bevy_app/src/sub_app.rs.
World — A container of entities, components, and resources. Implemented in crates/bevy_ecs/src/world/mod.rs. See primitives/world.
Entity — An opaque ID (Entity newtype) that names a logical "thing" in the world. Defined in crates/bevy_ecs/src/entity/mod.rs. See primitives/entity.
Component — A piece of data attached to an entity. Implements the Component trait, usually via #[derive(Component)]. Defined in crates/bevy_ecs/src/component/. See primitives/component.
Bundle — A typed group of components inserted as a unit. Trait Bundle in crates/bevy_ecs/src/bundle/. Tuple types (A, B, C) of components implement Bundle automatically.
Resource — A globally-unique singleton stored on the world. Implements Resource. Defined in crates/bevy_ecs/src/resource.rs. See primitives/resource.
System — A function that runs against the world. Anything implementing IntoSystem. Most systems are plain functions whose parameters tell the scheduler what they read and write (queries, resources, commands). See primitives/system.
Schedule — A directed acyclic graph of systems plus configuration (ordering, run conditions, sets). Defined in crates/bevy_ecs/src/schedule/. See primitives/schedule.
SystemSet — A label that groups systems for ordering or configuration. Implements SystemSet. The schedule executor uses sets to express things like "all input systems run before all update systems."
Query — The system parameter Query<&T> / Query<&mut T> that iterates entities matching a component signature. Implementation in crates/bevy_ecs/src/query/.
Commands — A deferred mutation buffer. commands.spawn(...) queues an entity creation that is applied between systems. Defined in crates/bevy_ecs/src/system/commands/.
Archetype — The unique combination of components on a set of entities. Bevy's storage is archetypal — entities with identical component layouts share a contiguous table. crates/bevy_ecs/src/archetype.rs.
ChangeDetection — Per-component flags that mark whether a component was added or modified this tick. Queries can filter on Added<T> and Changed<T>. Implementation in crates/bevy_ecs/src/change_detection/.
Observer — A function that runs in response to an ECS event (OnAdd, OnRemove, custom). Defined in crates/bevy_ecs/src/observer/. Observers are a more recent addition than systems and are how Bevy implements "lifecycle hooks" for components.
Hooks — Per-component callbacks (on_add, on_remove, on_replace) attached at component-registration time. See crates/bevy_ecs/src/component/hooks.rs.
Relationship — A first-class link between two entities (e.g. parent/child). Defined in crates/bevy_ecs/src/relationship/. Bevy's hierarchy (ChildOf / Children) is implemented as a relationship.
App / scheduling
Plugin — A composable unit of App configuration. Trait Plugin in crates/bevy_app/src/plugin.rs.
PluginGroup — A bundle of plugins added together (e.g. DefaultPlugins, MinimalPlugins).
Schedule label — Update, PostUpdate, FixedUpdate, etc. Defined in crates/bevy_app/src/main_schedule.rs.
FixedUpdate — A schedule that runs at a fixed timestep (default 64 Hz). Driven by accumulated time in crates/bevy_time/src/fixed.rs.
RunCondition — A predicate attached to a system or set that decides whether it runs this tick. crates/bevy_ecs/src/schedule/condition.rs.
State — A typed enum representing the app's current mode (e.g. MainMenu, InGame). Schedule transitions are driven by state changes. See bevy_state.
Rendering
RenderApp / RenderSubApp — The sub-app that runs the GPU pipeline. Initialized by crates/bevy_render/src/lib.rs.
ExtractSchedule — The schedule that copies data from the main world to the render world each frame.
RenderGraph — A DAG of render nodes (clears, passes, post-process steps). crates/bevy_render/src/render_graph/.
PhaseItem / RenderPhase — Sortable draw items grouped per render pass (Opaque3d, Transparent2d, etc). Implementation across crates/bevy_core_pipeline and crates/bevy_pbr/src/render.
Mesh — Vertex / index data plus attribute layout. crates/bevy_mesh/src/mesh/.
Material — A type-erased shader + uniform data binding. Trait Material in crates/bevy_material/src/. PBR materials are in crates/bevy_pbr/src/pbr_material.rs.
Pipeline — A wgpu::RenderPipeline plus its specialization key. crates/bevy_render/src/render_resource/pipeline.rs.
Camera — An entity with a projection and a view that produces an image. Defined in crates/bevy_camera/src/camera.rs.
View / RenderTarget — The destination of a camera's output. Either a window's swapchain or an image asset.
Visibility — Per-entity flags computed in PostUpdate that decide whether the renderer extracts the entity.
Assets
Asset — Any data type implementing Asset. Stored centrally in an Assets<T> resource. crates/bevy_asset/src/.
Handle — A reference-counted pointer to an asset. Handle<Mesh>, Handle<Image>. Cheap to clone.
AssetServer — The resource that loads, watches, and tracks assets. crates/bevy_asset/src/server/.
AssetSource / AssetReader — Pluggable backends for where asset bytes come from (filesystem, embedded, network).
Asset processor — An optional offline pipeline that converts source assets to processed form (compressed textures, meshlet meshes). Enabled via the asset_processor cargo feature.
Hot reload — When the file_watcher feature is on, the asset server watches for file changes and re-emits asset events.
Scenes & reflection
Reflect — The trait that exposes a type's fields and methods at runtime. crates/bevy_reflect/src/. The bedrock of scenes, the inspector, the BRP, and any "data-driven" feature.
TypeRegistry — A central registry of reflected types, indexed by TypeId and short name. crates/bevy_reflect/src/type_registry.rs.
Scene — A World snapshot serialized as RON or BSN. crates/bevy_scene provides the runtime; crates/bevy_world_serialization provides the format.
BSN — "Bevy Scene Notation," Bevy's bespoke scene format. Parser in crates/bevy_world_serialization/src/bsn/.
Template — A reflectable, composable description of a set of components, used in BSN. crates/bevy_ecs/src/template.rs.
Input / windowing
Window — An OS window. Component Window in crates/bevy_window/src/window.rs. The actual OS handle is owned by bevy_winit.
WinitPlugin — The plugin that bridges winit's event loop into Bevy. crates/bevy_winit/.
InputKeyCode, MouseButton, GamepadButton). crates/bevy_input/src/.
InputFocus — Which entity currently receives keyboard input. crates/bevy_input_focus/.
UI
Node — A UI element (entity with a Node component). Layout is driven by taffy (flexbox). crates/bevy_ui/.
Widget — A composed Node tree exposing a single concept (button, slider, scrollbar). crates/bevy_ui_widgets/.
Feathers — Bevy's built-in widget set and theme. crates/bevy_feathers/.
Math / utilities
Vec2 / Vec3 / Quat / Mat4 — Re-exported from glam. crates/bevy_math/src/lib.rs.
Transform — Local position/rotation/scale on an entity. crates/bevy_transform/src/components/transform.rs.
GlobalTransform — World-space transform, computed by transform propagation in PostUpdate.
Curve / Easing — Sampled functions used by animation, physics, UI. crates/bevy_math/src/curve/.
Diagnostics / dev
Diagnostics — A registry of named, time-windowed measurements (FPS, entity count, asset count). crates/bevy_diagnostic/.
Gizmos — Immediate-mode debug lines, shapes, and arrows drawn by bevy_gizmos. crates/bevy_gizmos/.
Bevy Remote Protocol (BRP) — A JSON-RPC interface for inspecting and mutating a running Bevy app. crates/bevy_remote/. See api/.
See also
- Architecture for how these pieces fit together.
- Primitives for full pages on the core ECS types.
- Packages for one page per crate.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.