bevy is a free, open source gaming project written in Rust and released under Apache-2.0. It has 48,268 GitHub stars, 4,846 forks and 3,418 open issues, and was last pushed 2 hours ago. On this registry it ranks #4 of 12 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is bevy?

Bevy is a free and open-source, data-driven game engine written in Rust that gives developers a complete 2D and 3D feature set through an Entity Component System architecture, and it is aimed at Rust programmers building games and interactive applications who accept an early-stage engine that ships breaking API changes roughly every three months.

What it is

Bevy is a data-driven game engine built in Rust, distributed as the bevy crate on crates.io with source at github.com/bevyengine/bevy and documentation home at bevy.org. It is licensed Apache-2.0 in the repository metadata, with the README badge stating MIT/Apache dual licensing. The project is free and open-source, and its stated design goals are being capable with a complete 2D and 3D feature set, simple for newcomers and flexible for power users, data focused through the Entity Component System paradigm, modular so users take only what they need and replace what they do not like, fast with parallel app logic, and productive with quick compile times.

The specific thing it replaces is a hand-rolled or assembled Rust game stack: rather than wiring together separate crates for entities, rendering, input and asset loading, a developer depends on one engine that supplies the ECS architecture and the 2D and 3D feature set together. The ecosystem it lives in is the Rust game development ecosystem, indexed under the topics bevy, game-development, game-engine, gamedev, open-source and rust.

Key capabilities

  • Data-oriented Entity Component System architecture, the paradigm the engine is built around.
  • Complete 2D and 3D feature set, per the project's "Capable" design goal.
  • Modular design: use only the parts needed and replace the parts that do not fit.
  • Parallel app logic, described as a core speed goal.
  • Distributed as crate bevy on crates.io, installed through Cargo.
  • API documentation generated from doc comments and published at docs.rs/bevy.
  • Runnable official examples hosted in the repository's examples directory.
  • Migration guides published for each release that carries breaking API changes.

Who uses it and how

  • Rust developers building 2D or 3D games who want one engine instead of an assembled crate stack.
  • Newcomers to gamedev who start at the Quick Start Guide and the Setup guide on bevy.org.
  • Teams comfortable tracking the release train, which lands a breaking API version approximately once every three months and requires budgeting time against the migration guides.
  • Plugin and tool authors publishing into Bevy Assets, the project's collection of community projects, tools, plugins and learning materials.
  • Contributors working through the Contributor's Guide, opening issues or PRs directly, and using GitHub Discussions for larger architecture questions.

Getting started

Add the bevy crate from crates.io and follow the Quick Start Guide and Setup guide at bevy.org to prepare the development environment. The official examples can be run by cloning the repository and running them directly, and the Minimum Supported Rust Version is generally close to the latest stable Rust release.

How it compares

No alternative game engines or paid products are named in the facts for this listing, so Bevy stands alone in this registry on the evidence available.

When to use it — and when not to

Bevy is a library rather than a service, so a self-hoster operates no database, storage or mail infrastructure; the operational cost is a Rust toolchain tracking the latest stable release, because the MSRV stays close to it. It should not be chosen by teams that need a stable API, a fully complete feature set or thorough documentation, since the README warns that Bevy is in the early stages of development with important features missing, sparse documentation, and breaking changes every release cycle. The repository also carries 3,418 open issues, and the README states plainly to use it only if you are willing to work in that environment.

project readme (upstream, from github) — read inline

Bevy

License Crates.io Downloads Docs Discord

What is Bevy?

Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!

WARNING

Bevy is still in the early stages of development. Important features are missing. Documentation is sparse. A new version of Bevy containing breaking changes to the API is released approximately once every 3 months. We provide migration guides, but we can't guarantee migrations will always be easy. Use only if you are willing to work in this environment.

MSRV: Bevy relies heavily on improvements in the Rust language and compiler. As a result, the Minimum Supported Rust Version (MSRV) is generally close to "the latest stable release" of Rust.

Design Goals

  • Capable: Offer a complete 2D and 3D feature set
  • Simple: Easy for newbies to pick up, but infinitely flexible for power users
  • Data Focused: Data-oriented architecture using the Entity Component System paradigm
  • Modular: Use only what you need. Replace what you don't like
  • Fast: App logic should run quickly, and when possible, in parallel
  • Productive: Changes should compile quickly ... waiting isn't fun

About

  • Features: A quick overview of Bevy's features.
  • News: A development blog that covers our progress, plans and shiny new features.

Docs

Community

Before contributing or participating in discussions with the community, you should familiarize yourself with our Code of Conduct.

  • Discord: Bevy's official discord server.
  • Reddit: Bevy's official subreddit.
  • GitHub Discussions: The best place for questions about Bevy, answered right here!
  • Bevy Assets: A collection of awesome Bevy projects, tools, plugins and learning materials.

Contributing

If you'd like to help build Bevy, check out the Contributor's Guide. For simple problems, feel free to open an issue or PR and tackle it yourself!

For more complex architecture decisions and experimental mad science, please open a GitHub Discussion so we can brainstorm together effectively!

Getting Started

We recommend checking out the Quick Start Guide for a brief introduction.

Follow the Setup guide to ensure your development environment is set up correctly. Once set up, you can quickly try out the examples by cloning this repo and running the following commands:

# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakout

To draw a window with standard functionality enabled, use:

use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .run();
}

Fast Compiles

Bevy can be built just fine using default configuration on stable Rust. However for really fast iterative compiles, you should enable the "fast compiles" setup by following the instructions here.

Bevy Cargo Features

This list outlines the different cargo features supported by Bevy. These allow you to customize the Bevy feature set for your use-case.

Thanks

Bevy is the result of the hard work of many people. A huge thanks to all Bevy contributors, the many open source projects that have come before us, the Rust gamedev ecosystem, and the many libraries we build on.

A huge thanks to Bevy's generous sponsors. Bevy will always be free and open source, but it isn't free to make. Please consider sponsoring our work if you like what we're building.

This project is tested with BrowserStack.

License

Bevy is free, open source and permissively licensed! Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either:

at your option. This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.

Some of the engine's code carries additional copyright notices and license terms due to their external origins. These are generally BSD-like, but exact details vary by crate: If the README of a crate contains a 'License' header (or similar), the additional copyright notices and license terms applicable to that crate will be listed. The above licensing requirement still applies to contributions to those crates, and sections of those crates will carry those license terms. The license field of each crate will also reflect this.

The assets included in this repository (for our examples) typically fall under different open licenses. These will not be included in your game (unless copied in by you), and they are not distributed in the published bevy crates. See CREDITS.md for the details of the licenses of those files.

Your contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Frequently asked questions

Is bevy free to use?

bevy is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does bevy do?

A refreshingly simple data-driven game engine built in Rust

What is bevy written in?

bevy is primarily written in Rust. Its source is publicly available at https://github.com/bevyengine/bevy, and it has 48,268 GitHub stars.