#bevy #linker #game-engine #dynamic #build #faster #linked

bevy_dylib

Force the Bevy Engine to be dynamically linked for faster linking

31 releases

new 0.15.1 Jan 3, 2025
0.15.0 Nov 29, 2024
0.15.0-rc.2 Oct 27, 2024
0.14.0 Jul 4, 2024
0.4.0 Dec 19, 2020

#2715 in Game dev

Download history 5605/week @ 2024-09-20 5390/week @ 2024-09-27 2931/week @ 2024-10-04 3608/week @ 2024-10-11 4609/week @ 2024-10-18 5039/week @ 2024-10-25 5105/week @ 2024-11-01 2294/week @ 2024-11-08 2653/week @ 2024-11-15 5290/week @ 2024-11-22 5992/week @ 2024-11-29 6324/week @ 2024-12-06 8755/week @ 2024-12-13 4397/week @ 2024-12-20 2183/week @ 2024-12-27 6156/week @ 2025-01-03

22,791 downloads per month
Used in 65 crates (via bevy)

MIT/Apache

37KB
235 lines

Bevy Dynamic Library

License Crates.io Downloads Docs Discord


lib.rs:

Forces dynamic linking of Bevy.

Dynamic linking causes Bevy to be built and linked as a dynamic library. This will make incremental builds compile much faster.

Warning

Do not enable this feature for release builds because this would require you to ship libstd.so and libbevy_dylib.so with your game.

Enabling dynamic linking

The easiest way to enable dynamic linking is to use the --features bevy/dynamic_linking flag when using the cargo run command:

cargo run --features bevy/dynamic_linking

The unrecommended way

It is also possible to enable the dynamic_linking feature inside of the Cargo.toml file. This is unrecommended because it requires you to remove this feature every time you want to create a release build to avoid having to ship additional files with your game.

To enable dynamic linking inside of the Cargo.toml file add the dynamic_linking feature to the bevy dependency:

features = ["dynamic_linking"]

The manual way

Manually enabling dynamic linking is achieved by adding bevy_dylib as a dependency and adding the following code to the main.rs file:

#[allow(unused_imports)]
use bevy_dylib;

It is recommended to disable the bevy_dylib dependency in release mode by adding the following code to the use statement to avoid having to ship additional files with your game:

#[allow(unused_imports)]
#[cfg(debug_assertions)] // new
use bevy_dylib;

Dependencies

~22–32MB
~527K SLoC