[package]
edition = "2021"
name = "goldy"
version = "0.2.0"
build = "build.rs"
exclude = [
".cursor/",
".github/",
"cpp/",
"derive/",
"docker/",
"docs/",
"dotnet/",
"ffi/",
"ffi-client/",
"python/",
"scripts/",
"AGENTS.md",
"DEBUGGING.md",
"PACKAGING.md",
"RELEASING.md",
"run_all_examples.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fondaco Machine GPU runtime for Rust (Vulkan, DX12, Metal)"
homepage = "https://koubaa.github.io/goldy/"
documentation = "https://docs.rs/goldy"
readme = "README.md"
keywords = [
"gpu",
"graphics",
"vulkan",
"rendering",
]
categories = [
"graphics",
"rendering",
]
license = "MIT"
repository = "https://github.com/koubaa/goldy"
[features]
cuda = ["dep:cudarc"]
default = [
"vulkan",
"metal",
"dx12",
"instrumentation",
]
dx12 = [
"dep:windows",
"dep:gpu-allocator",
"dep:windows-core",
]
examples = ["dep:winit"]
instrumentation = ["dep:tracing-subscriber"]
metal = [
"dep:metal",
"dep:cocoa",
"dep:objc",
"dep:core-graphics-types",
"dep:foreign-types",
"dep:block",
]
tracy = [
"dep:tracy-client",
"tracy-client/enable",
"tracy-client/ondemand",
"tracy-client/broadcast",
"tracy-client/system-tracing",
"tracy-client/context-switch-tracing",
]
update-screenshots = ["dep:image"]
vulkan = ["dep:ash"]
webgpu = [
"dep:wgpu",
"dep:pollster",
]
[lib]
name = "goldy"
path = "src/lib.rs"
[[bin]]
name = "update-screenshots"
path = "tools/update_screenshots.rs"
required-features = ["update-screenshots"]
[[example]]
name = "triangle"
path = "examples/triangle.rs"
required-features = ["examples"]
[[example]]
name = "digital_clock"
path = "examples/digital_clock.rs"
required-features = ["examples"]
[[example]]
name = "gradient"
path = "examples/gradient.rs"
required-features = ["examples"]
[[example]]
name = "plasma"
path = "examples/plasma.rs"
required-features = ["examples"]
[[example]]
name = "starfield"
path = "examples/starfield.rs"
required-features = ["examples"]
[[example]]
name = "mandelbrot"
path = "examples/mandelbrot.rs"
required-features = ["examples"]
[[example]]
name = "bouncing_lines"
path = "examples/bouncing_lines.rs"
required-features = ["examples"]
[[example]]
name = "spinning_cube"
path = "examples/spinning_cube.rs"
required-features = ["examples"]
[[example]]
name = "metaballs"
path = "examples/metaballs.rs"
required-features = ["examples"]
[[example]]
name = "checkerboard"
path = "examples/checkerboard.rs"
required-features = ["examples"]
[[example]]
name = "instancing"
path = "examples/instancing.rs"
required-features = ["examples"]
[[example]]
name = "particles"
path = "examples/particles.rs"
required-features = ["examples"]
[[example]]
name = "waveform"
path = "examples/waveform.rs"
required-features = ["examples"]
[[example]]
name = "tunnel"
path = "examples/tunnel.rs"
required-features = ["examples"]
[[example]]
name = "multi_window"
path = "examples/multi_window.rs"
required-features = ["examples"]
[[example]]
name = "compute_particles"
path = "examples/compute_particles.rs"
required-features = ["examples"]
[[example]]
name = "game_of_life"
path = "examples/game_of_life.rs"
required-features = ["examples"]
[[example]]
name = "depth_quads"
path = "examples/depth_quads.rs"
required-features = ["examples"]
[[example]]
name = "compute_to_surface"
path = "examples/compute_to_surface.rs"
required-features = ["examples"]
[[example]]
name = "textured_quad"
path = "examples/textured_quad.rs"
required-features = ["examples"]
[[example]]
name = "solid_cube"
path = "examples/solid_cube.rs"
required-features = ["examples"]
[[test]]
name = "cache_integration"
path = "tests/cache_integration.rs"
[[test]]
name = "compute_integration"
path = "tests/compute_integration.rs"
harness = false
[[test]]
name = "cross_submit_gpu"
path = "tests/cross_submit_gpu.rs"
harness = false
[[test]]
name = "cross_submit_mock"
path = "tests/cross_submit_mock.rs"
[[test]]
name = "digital_clock_shared"
path = "tests/digital_clock_shared.rs"
[[test]]
name = "frame_orchestrator"
path = "tests/frame_orchestrator.rs"
[[test]]
name = "image"
path = "tests/image.rs"
[[test]]
name = "retained_replay"
path = "tests/retained_replay.rs"
[[test]]
name = "scheme_compute_integration"
path = "tests/scheme_compute_integration.rs"
harness = false
[[test]]
name = "scheme_render_integration"
path = "tests/scheme_render_integration.rs"
[[test]]
name = "scheme_screenshot_tests"
path = "tests/scheme_screenshot_tests.rs"
[[test]]
name = "serial_tests"
path = "tests/serial_tests.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.ash]
version = "0.38"
optional = true
[dependencies.bincode]
version = "2"
features = ["serde"]
[dependencies.bitflags]
version = "2.6"
[dependencies.bytemuck]
version = "1.21"
features = ["derive"]
[dependencies.cudarc]
version = "0.19"
features = [
"std",
"driver",
"nvrtc",
"cuda-13000",
"dynamic-loading",
]
optional = true
default-features = false
[dependencies.dirs]
version = "6.0"
[dependencies.goldy_derive]
version = "0.2.0"
[dependencies.image]
version = "0.25"
optional = true
[dependencies.libloading]
version = "0.9"
[dependencies.pollster]
version = "0.4"
optional = true
[dependencies.raw-window-handle]
version = "0.6"
[dependencies.rustc-hash]
version = "2"
[dependencies.scopeguard]
version = "1.2"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.thiserror]
version = "2.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.tracy-client]
version = "0.18"
optional = true
default-features = false
[dependencies.wgpu]
version = "28"
optional = true
[dependencies.winit]
version = "0.30"
optional = true
[dependencies.zstd]
version = "0.13"
[dev-dependencies.libtest-mimic]
version = "0.8"
[dev-dependencies.nv-flip]
version = "0.1"
[dev-dependencies.png]
version = "0.18"
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_os = "macos")'.dependencies.block]
version = "0.1"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.cocoa]
version = "0.26"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.core-graphics-types]
version = "0.2"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.foreign-types]
version = "0.5"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.33"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc]
version = "0.2"
optional = true
[target."cfg(windows)".dependencies.gpu-allocator]
version = "0.28"
features = ["d3d12"]
optional = true
[target."cfg(windows)".dependencies.windows]
version = "0.62"
features = [
"Win32_Graphics_Direct3D12",
"Win32_Graphics_Direct3D",
"Win32_Graphics_Direct3D_Dxc",
"Win32_Graphics_Direct3D_Fxc",
"Win32_Graphics_Dxgi_Common",
"Win32_Graphics_Dxgi",
"Win32_Foundation",
"Win32_Security",
"Win32_System_Threading",
"Win32_UI_WindowsAndMessaging",
]
optional = true
[target."cfg(windows)".dependencies.windows-core]
version = "0.62"
optional = true
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("cargo-clippy"))']