Bevy Feature Flags Reference

Feature flags for Bevy 0.15. Disable default-features and pick what you need for minimal builds, or keep defaults for full-featured games.

Core Features

FeatureDefaultDescriptionWhen to disable
multi_threadedYesEnables multi-threaded task executionHeadless single-threaded environments, WASM
bevy_assetYesAsset loading systemNever for games; only for pure ECS/logic-only apps
bevy_sceneYesScene serialization and loadingIf you don't use .scn.ron scene files
bevy_stateYesState machine for app states (menu, gameplay, etc.)Unlikely — most games need states
bevy_colorYesColor types and conversionsRarely — almost everything uses colors

Windowing & Input

FeatureDefaultDescriptionWhen to disable
bevy_winitYesWindow creation and event loop via winitHeadless/server builds
bevy_gilrsYesGamepad/controller support via gilrsIf you don't support gamepads; always disable for WASM
bevy_input_focusYesInput focus trackingRarely
bevy_pickingYesPointer-based picking (click/hover detection)If you handle all input manually
bevy_mesh_picking_backendYesMesh-based picking for 3D objects2D-only games
bevy_ui_picking_backendYesUI node pickingIf not using bevy_ui

Rendering

FeatureDefaultDescriptionWhen to disable
bevy_renderYesCore rendering infrastructureHeadless/server builds
bevy_core_pipelineYesBuilt-in render pipelines (2D, 3D, tonemapping)Headless/server builds
bevy_pbrYesPhysically-based 3D rendering, materials, lighting2D-only games
bevy_spriteYes2D sprite rendering3D-only games
bevy_textYesText renderingIf you never display text
bevy_uiYesBuilt-in UI systemIf using a third-party UI library exclusively
bevy_gizmosYesDebug drawing (lines, shapes)Production release builds (strip via feature)
bevy_gltfYesglTF 3D model loading2D-only games or custom mesh generation
hdrYesHDR texture supportIf all textures are LDR
tonemapping_lutsYesTonemapping look-up tablesIf you use a custom tonemapper

Audio

FeatureDefaultDescriptionWhen to disable
bevy_audioYesBuilt-in audio playbackIf using a third-party audio library (e.g., kira)
vorbisYesOGG Vorbis audio decodingIf you only use WAV or other formats

Image Formats

FeatureDefaultDescriptionWhen to disable
pngYesPNG image loadingIf you only use other formats
jpegNoJPEG image loadingEnable if you have JPEG textures
bmpNoBMP image loadingEnable if you have BMP textures
ktx2NoKTX2 compressed texture loadingEnable for GPU-compressed textures
basis-universalNoBasis Universal texture compressionEnable for cross-platform compressed textures
exrNoOpenEXR HDR image loadingEnable for HDR environment maps

Platform Features

FeatureDefaultDescriptionWhen to disable
x11YesX11 windowing on LinuxWayland-only Linux setups
waylandNoWayland windowing on LinuxEnable for native Wayland support
webgl2NoWebGL2 rendering backendEnable for WASM builds targeting broad browser support
webgpuNoWebGPU rendering backendEnable for WASM builds targeting modern browsers

Development & Debugging

FeatureDefaultDescriptionWhen to disable
dynamic_linkingNoDynamically link Bevy for faster dev compilesAlways disable for release/distribution builds
file_watcherNoHot-reload assets when files change on diskEnable during development for asset iteration
asset_processorNoPre-process assets at build timeEnable when you need asset optimization pipelines
embedded_watcherNoHot-reload embedded assetsEnable during development with embedded assets

Profiling & Tracing

FeatureDefaultDescriptionWhen to disable
traceNoAdds tracing spans to Bevy systems and functionsEnable when profiling performance
trace_tracyNoTracy profiler integrationEnable to use the Tracy profiler
trace_chromeNoChrome trace format output (chrome://tracing)Enable for browser-based trace viewing
detailed_traceNoVerbose tracing for ECS internalsEnable only when debugging scheduler issues

Miscellaneous

FeatureDefaultDescriptionWhen to disable
default_fontYesBundles a default font so text works out of the boxIf you always provide custom fonts
smol_strYesUse smol_str for small-string optimizationRarely needs disabling
sysinfo_pluginYesSystem information diagnostics pluginProduction builds where you don't need diagnostics
serializeNoAdds serde Serialize/Deserialize to common typesEnable for save/load systems or networking
bevy_dev_toolsNoDevelopment tools (FPS overlay, state inspector)Enable during development

Example: Minimal 2D Game

bevy = { version = "0.15", default-features = false, features = [
    "bevy_asset",
    "bevy_color",
    "bevy_core_pipeline",
    "bevy_render",
    "bevy_sprite",
    "bevy_state",
    "bevy_text",
    "bevy_ui",
    "bevy_winit",
    "default_font",
    "multi_threaded",
    "png",
    "x11",
] }

Example: Headless Server

bevy = { version = "0.15", default-features = false, features = [
    "multi_threaded",
    "serialize",
] }