Which platforms does Bevy Engine support?

Updated

Bevy Engine supports all major platforms: Windows, macOS, Linux, Web, iOS, and Android. That means a single Bevy project can target desktop, browser, and mobile from the same Rust codebase. The engine is free and open source, and its cross-platform support is listed as a core feature on bevy.org.

Platform coverage at a glance

Platform Type Notes
Windows Desktop Listed as a supported major platform
macOS Desktop Listed as a supported major platform
Linux Desktop Listed as a supported major platform
Web Browser Listed as a supported major platform
iOS Mobile Listed as a supported major platform
Android Mobile Listed as a supported major platform

The source lists these six as "all major platforms," so Bevy's cross-platform story covers the three desktop operating systems, the web, and both major mobile ecosystems.

What this means for cross-platform development

Because Bevy is built in Rust and its feature set is engine-level rather than platform-specific, the same project structure applies across targets. Several engine systems are described in platform-neutral terms:

  • Rendering — The 2D renderer, 3D renderer, and Render Graph are described as backend agnostic, meaning the render pipeline is "not tied to a specific graphics API." This matters for cross-platform work because different platforms expose different graphics backends.
  • Assets and scenes — Scenes can be created, saved, and loaded as ECS worlds, and asset changes can be hot-reloaded (currently scenes, textures, and meshes). These are engine features, not per-platform features.
  • UI — Bevy UI is a custom ECS-driven framework built on Bevy's ECS, Renderer, and Scene plugins, using a flex-box layout model. It is part of the engine rather than a platform layer.
  • Audio — Audio files load as Assets and play through Audio entities, with hot reloading.

In practice, this means you write game logic once against Bevy's ECS and rendering abstractions, then build for each target platform.

Practical considerations when choosing targets

The platform list tells you what is supported, but it does not tell you how much platform-specific work each target requires. A few things to keep in mind:

  • Desktop (Windows, macOS, Linux) is the most straightforward target set, since all three are listed together as major platforms and share desktop input and windowing assumptions.
  • Web is a distinct target because browser deployment constrains how assets are delivered and how the renderer reaches the GPU. Bevy's backend-agnostic Render Graph is relevant here, but you should still test web builds separately.
  • Mobile (iOS, Android) introduces touch input, app lifecycle, and store packaging concerns that desktop does not. Plan for separate testing even though the engine supports both.

If your goal is a single codebase across desktop and web, Bevy's platform list supports that. If you also need mobile, the same engine covers it, but budget time for mobile-specific testing and packaging.

How to verify support for your target

  1. Identify your required targets from the six listed platforms.
  2. Check that the engine features you depend on (2D or 3D rendering, UI, animation, audio) are described as engine-level rather than platform-specific — on bevy.org they are.
  3. Build and run a minimal project on each target early, before committing to a full project, so platform-specific issues surface while they are cheap to fix.

The main takeaway: Bevy lists Windows, macOS, Linux, Web, iOS, and Android as supported platforms, making it a viable choice for cross-platform games and applications that need desktop, browser, and mobile reach from one Rust codebase.