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

28 lines
961 B
Markdown

---
title: Faster Zstd decompression option
authors: ["@atlv24", "@brianreavis"]
pull_requests: [19793]
---
There is now an option to use the [zstd](https://crates.io/crates/zstd) c-bindings instead of [ruzstd](https://crates.io/crates/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:
```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:
```toml
bevy = { version = "0.17.0", default-features = false, features = [
"zstd_c",
"bevy_render", # etc..
] }
```