bevy/release-content/release-notes/faster-zstd-option.md
atlv e0383a0b96
Add zstd release note (#20053)
# Objective

- Add a release note for the new zstd backend.
- Doing so, I realized it was really cumbersome to enable this feature
because we default-enable ruzstd AND make it take precedence if both are
enabled. We can improve ux a bit by making the optional feature take
precedence when both are enabled. This still doesnt remove the unneeded
dependency, but oh well.

Note: it would be nice to have a way to make zstd_c not do anything when
building wasm, but im not sure theres a way to do that, as it seems like
it would need negative features.

---------

Co-authored-by: Jan Hohenheim <jan@hohenheim.ch>
2025-07-14 20:53:26 +00:00

961 B

title authors pull_requests
Faster Zstd decompression option
@atlv24
@brianreavis
19793

There is now an option to use the zstd c-bindings instead of ruzstd. This is less safe and portable, but can be around 44% faster.

The two features that control which one is used are zstd_rust and zstd_c. zstd_rust is enabled by default, but zstd_c takes precedence if both are enabled.

To enable it, add the feature to the bevy entry of your Cargo.toml:

bevy = { version = "0.17.0", features = ["zstd_c"] }

Note: this will still include a dependency on ruzstd, because mutually exclusive features are not supported by Cargo. To remove this dependency, disable default-features, and manually enable any default features you need:

bevy = { version = "0.17.0", default-features = false, features = [
    "zstd_c",
    "bevy_render", # etc..
] }