[package] edition = "2024" rust-version = "1.89" name = "stardust-xr-server" version = "0.45.0" authors = ["Nova King "] description = "Stardust XR reference display server" license = "GPLv2" repository = "https://github.com/StardustXR/stardust-xr-server/" homepage = "https://stardustxr.org" [workspace] members = ["codegen"] [workspace.dependencies.stardust-xr] git = "https://github.com/StardustXR/core.git" branch = "dev" [[bin]] name = "stardust-xr-server" path = "src/main.rs" [features] default = ["wayland"] wayland = [ "dep:waynest", "dep:waynest-protocols", "dep:waynest-server", "dep:tokio-stream", "dep:memmap2", "dep:drm-fourcc", "dep:memfd", "dep:vulkano", "dep:wgpu-hal", "dep:ash", ] profile_tokio = ["dep:console-subscriber", "tokio/tracing"] profile_app = [ "dep:tracing-tracy", "bevy/trace_tracy", "bevy/trace", "dep:tracy-client", ] bevy_debugging = ["bevy/bevy_remote", "bevy/track_location"] [package.metadata.appimage] auto_link = true auto_link_exclude_list = ["libc*", "libdl*", "libpthread*", "ld-linux*"] [profile.release] opt-level = "s" lto = true codegen-units = 1 panic = "abort" # strip = "symbols" debug = true [profile.dev.package."*"] opt-level = 3 [patch.crates-io] bevy_mod_openxr = { git = "https://github.com/awtterpip/bevy_oxr", rev = "9fd0c797" } bevy_mod_xr = { git = "https://github.com/awtterpip/bevy_oxr", rev = "9fd0c797" } bevy_gltf = { git = "https://github.com/Schmarni-Dev/bevy", branch = "gltf_backport" } # TODO: figure out how to not need this horrifing patch wgpu = { git = "https://github.com/Schmarni-Dev/wgpu", branch = "bad_dmabuf_workaround" } wgpu-types = { git = "https://github.com/Schmarni-Dev/wgpu", branch = "bad_dmabuf_workaround" } wgpu-core = { git = "https://github.com/Schmarni-Dev/wgpu", branch = "bad_dmabuf_workaround" } naga = { git = "https://github.com/Schmarni-Dev/wgpu", branch = "bad_dmabuf_workaround" } wgpu-hal = { git = "https://github.com/Schmarni-Dev/wgpu", branch = "bad_dmabuf_workaround" } bevy_pbr = { git = "https://github.com/Schmarni-Dev/bevy", branch = "premul_oit_016" } bevy_core_pipeline = { git = "https://github.com/Schmarni-Dev/bevy", branch = "premul_oit_016" } bevy_render = { git = "https://github.com/Schmarni-Dev/bevy", branch = "render_thread_init_callback" } [dependencies] # small utility thingys nanoid = "0.4.0" lazy_static = "1.5.0" rand = "0.9.2" rustc-hash = "2.0.0" slotmap = "1.0.7" global_counter = "=0.2.2" parking_lot = "0.12.3" dashmap = "6.1.0" # rust errors/logging color-eyre = { version = "0.6.3", default-features = false } clap = { version = "4.5.13", features = ["derive"] } console-subscriber = { version = "0.4.0", optional = true } thiserror = "2.0.11" tracing = { version = "0.1.40", features = ["release_max_level_warn"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } tracing-tracy = { version = "0.11.1", optional = true } tracy-client = { version = "=0.18.0", optional = true } # (de)serialization serde = { version = "1.0.205", features = ["derive"] } serde_repr = "0.1.19" toml = "0.9.7" # mathy stuffs glam = { version = "0.29.0", features = ["mint", "serde"] } mint = "0.5.9" tokio = { version = "1.39.2", features = ["rt-multi-thread", "signal", "time"] } # bevy bevy = { version = "0.16", default-features = false, features = [ "bevy_asset", "bevy_audio", "bevy_color", "bevy_core_pipeline", "bevy_gizmos", "bevy_gltf", "bevy_log", "bevy_pbr", "bevy_render", "bevy_window", "bevy_winit", "std", "wayland", "mp3", "wav", "qoi", "png", "hdr", "jpeg", "multi_threaded", ] } bevy_mod_xr = "0.3" bevy_mod_openxr = "0.3" # bevy_sk.git = "https://github.com/MalekiRe/bevy_sk" bevy_sk = { git = "https://github.com/technobaboo/bevy_sk", branch = "stochastic" } # bevy-dmabuf = "0.2.0" bevy-dmabuf.git = "https://github.com/Schmarni-Dev/bevy-dmabuf" bevy-equirect = "0.1.1" # bevy-mesh-text-3d.git = "https://github.com/terhechte/bevy-mesh-text-3d" # use my fork until my pr to use minimal bevy features was merged bevy-mesh-text-3d.git = "https://github.com/Schmarni-Dev/bevy-mesh-text-3d" openxr = "0.19" # linux stuffs input-event-codes = "6.2.0" zbus = { version = "5.11.0", features = [ "blocking-api", "tokio", ], default-features = false } directories = "6.0.0" xkbcommon-rs = "0.1.0" cosmic-text = "0.14.2" # Wayland waynest = { git = "https://github.com/verdiwm/waynest.git", default-features = false, optional = true } waynest-protocols = { git = "https://github.com/verdiwm/waynest.git", features = [ "server", "stable", "mesa", "tracing", ], default-features = false, optional = true } waynest-server = { git = "https://github.com/verdiwm/waynest.git", default-features = false, optional = true } tokio-stream = { version = "0.1.17", optional = true } memmap2 = { version = "0.9.5", optional = true } drm-fourcc = { version = "2.2.0", optional = true } memfd = { version = "0.6.4", optional = true } vulkano = { git = "https://github.com/Schmarni-Dev/vulkano", branch = "0_35_dmabuf_fixes", default-features = false, optional = true } wgpu-hal = { version = "24", optional = true, features = ["vulkan"] } ash = { version = "0.38.0", optional = true, default-features = false } rustix = { version = "1.0.8", features = ["time"] } pin-project-lite = "0.2.16" futures-sink = "0.3.31" [dependencies.stardust-xr] workspace = true [dependencies.stardust-xr-server-codegen] path = "codegen"