concinnity-engine 0.19.23

Runtime engine for Concinnity: ECS schedule, graphics, spawn, streaming
[package]
name = "concinnity-engine"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Runtime engine for Concinnity: ECS schedule, graphics, spawn, streaming"
readme = "README.md"
keywords = ["gamedev", "graphics", "engine", "concinnity"]
categories = ["game-engines", "rendering::engine"]
include = [
    "/README.md",
    "/src",
    "/build.rs",
    "/tests",
]

[features]
default = ["native"]
native = ["dep:concinnity-device", "concinnity-device/native"]
metal = ["dep:concinnity-device", "concinnity-device/metal"]
directx = ["dep:concinnity-device", "concinnity-device/directx"]
vulkan = ["dep:concinnity-device", "concinnity-device/vulkan"]

# Per-size-class allocation histograms on top of the counters every binary
# already gets. The allocator itself is installed by linking this crate (see
# `src/heap.rs`); this is the tier a shipped build should not pay for, so a
# development binary asks for it here rather than depending on the allocator
# crate to reach the feature.
alloc-detail = ["concinnity-core/detail"]

[dependencies]
concinnity-core = { workspace = true }
concinnity-host = { workspace = true }
concinnity-device = { workspace = true, optional = true }

ciborium = "0.2"
gilrs = "0.11.2"
kira = "0.12"
mint = "0.5"
postcard = { version = "1", default-features = false, features = ["use-std"] }
ctrlc = "3.5.2"
serde = { version = "1", features = ["derive"] }
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }

[target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies]
crash-handler = "0.8"
minidump-writer = "0.13"

[target.'cfg(target_os = "macos")'.dependencies]
# The macOS run loop for `cn run` (app/run.rs drives NSApplication + the
# CFRunLoop directly, and needs a MainThreadMarker). The Metal backend's wider
# objc2 stack lives in concinnity-device.
core-foundation = "0.10.1"
objc2 = "0.6.4"
objc2-app-kit = "0.3.2"

[target.'cfg(unix)'.dependencies]
# Host-memory queries (app/sysmem.rs): sysctl `hw.memsize` + mach `task_info`
# on macOS; `/proc` on Linux only needs the page size from here.
libc = "0.2"

[target.'cfg(windows)'.dependencies]
# Host-memory queries (app/sysmem.rs): GlobalMemoryStatusEx + GetProcessMemoryInfo.
windows = { version = "0.62.2", features = [
    "Win32_Foundation",
    "Win32_System_ProcessStatus",
    "Win32_System_SystemInformation",
    "Win32_System_Threading",
] }

[dev-dependencies]
concinnity-testing = { workspace = true }
serde_json = { version = "1", features = ["preserve_order"] }
tempfile = "3.25.0"

[build-dependencies]
concinnity-toolchain = { workspace = true }
concinnity-core = { workspace = true }

[lints]
workspace = true