Module bevy::app

Expand description

Build bevy apps, create plugins, and read events.



  • A container of app logic and data.
  • An event that indicates the App should exit. This will fully exit the app process at the start of the next tick of the schedule.
  • Runs first in the schedule.
  • Runs first in the FixedMain schedule.
  • The schedule that runs last in FixedMain
  • The schedule that contains systems which only run after a fixed period of time has elapsed.
  • Defines the schedules to be run for the FixedMain schedule, including their order.
  • The schedule that runs after the FixedUpdate schedule, for reacting to changes made in the main update logic.
  • The schedule that contains logic that must run before FixedUpdate.
  • The schedule that contains most gameplay logic.
  • Runs last in the schedule.
  • The schedule that contains the app logic that is evaluated each tick of App::update().
  • Defines the schedules to be run for the Main schedule, including their order.
  • Initializes the Main schedule, sub schedules, and resources for a given App.
  • Facilitates the creation and configuration of a PluginGroup. Provides a build ordering to ensure that Plugins which produce/require a Resource are built before/after dependent/depending Plugins. Plugins inside the group can be disabled, enabled or reordered.
  • The schedule that runs once after Startup.
  • The schedule that contains logic that must run after Update. For example, synchronizing “local transforms” in a hierarchy to “global” absolute transforms. This enables the PostUpdate transform-sync system to react to “local transform” changes in Update without the Update systems needing to know about (or add scheduler dependencies for) the “global transform sync system”.
  • The schedule that runs before Startup.
  • The schedule that contains logic that must run before Update. For example, a system that reads raw keyboard input OS events into an Events resource. This enables systems in Update to consume the events from the Events resource without actually knowing about (or taking a direct scheduler dependency on) the “os-level keyboard event system”.
  • Runs the FixedMain schedule in a loop according until all relevant elapsed time has been “consumed”.
  • Configures an App to run its Schedule according to a given RunMode.
  • The schedule that contains scene spawning.
  • The schedule that runs once when the app starts.
  • A SubApp contains its own Schedule and World separate from the main App. This is useful for situations where data and data processing should be kept completely separate from the main application. The primary use of this feature in bevy is to enable pipelined rendering.
  • The schedule that contains app logic. Ideally containing anything that must run once per render frame, such as UI.



  • A strongly-typed class of labels used to identify an App.
  • An object safe version of Eq. This trait is automatically implemented for any 'static type that implements Eq.
  • A collection of Bevy app logic and configuration.
  • Combines multiple Plugins into a single unit.
  • Types that represent a set of Plugins.

Type Aliases

  • A type representing an unsafe function that returns a mutable pointer to a Plugin. It is used for dynamically loading plugins.
  • A shorthand for Interned<dyn AppLabel>.

Derive Macros

  • Generates an impl of the AppLabel trait.
  • Generates a dynamic plugin entry point function for the given Plugin type.