[package] name = "bevy_platform_support" version = "0.16.0-dev" edition = "2024" description = "Platform compatibility support for Bevy Engine" homepage = "https://bevyengine.org" repository = "https://github.com/bevyengine/bevy" license = "MIT OR Apache-2.0" keywords = ["bevy"] [features] default = ["std"] # Functionality ## Adds serialization support through `serde`. serialize = ["hashbrown/serde"] # Platform Compatibility ## Allows access to the `std` crate. Enabling this feature will prevent compilation ## on `no_std` targets, but provides access to certain additional features on ## supported platforms. std = [ "alloc", "critical-section?/std", "portable-atomic/std", "portable-atomic-util/std", "spin/std", "foldhash/std", ] ## Allows access to the `alloc` crate. alloc = ["portable-atomic-util/alloc", "dep:hashbrown"] ## `critical-section` provides the building blocks for synchronization primitives ## on all platforms, including `no_std`. critical-section = ["dep:critical-section", "portable-atomic/critical-section"] ## Enables use of browser APIs. ## Note this is currently only applicable on `wasm32` architectures. web = ["dep:web-time", "dep:getrandom"] [dependencies] cfg-if = "1.0.0" critical-section = { version = "1.2.0", default-features = false, optional = true } spin = { version = "0.9.8", default-features = false, features = [ "mutex", "spin_mutex", "rwlock", "once", "lazy", "barrier", ] } foldhash = { version = "0.1.3", default-features = false } hashbrown = { version = "0.15.1", features = [ "equivalent", "raw-entry", ], optional = true, default-features = false } [dev-dependencies] bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev" } [target.'cfg(target_arch = "wasm32")'.dependencies] web-time = { version = "1.1", default-features = false, optional = true } getrandom = { version = "0.2.0", default-features = false, optional = true, features = [ "js", ] } [target.'cfg(not(all(target_has_atomic = "8", target_has_atomic = "16", target_has_atomic = "32", target_has_atomic = "64", target_has_atomic = "ptr")))'.dependencies] portable-atomic = { version = "1", default-features = false, features = [ "fallback", ] } spin = { version = "0.9.8", default-features = false, features = [ "portable_atomic", ] } [target.'cfg(not(target_has_atomic = "ptr"))'.dependencies] portable-atomic-util = { version = "0.2.4", default-features = false } [lints] workspace = true [package.metadata.docs.rs] rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"] all-features = true