[workspace]
resolver = "3"
members = [
    "crates/libremetaverse-types",
    "crates/libremetaverse-structured-data",
    "crates/libremetaverse-imaging",
    "crates/libremetaverse-imaging-skia",
    "crates/libremetaverse-openjpeg",
    "crates/libremetaverse-prim-mesher",
    "crates/libremetaverse",
    "crates/libremetaverse-rendering-simple",
    "crates/libremetaverse-rendering-mesh-foundry",
    "crates/libremetaverse-lsl-tools",
    "crates/libremetaverse-rlv",
    "crates/libremetaverse-utilities",
    "crates/libremetaverse-voice-vivox",
    "crates/libremetaverse-opus",
    "crates/libremetaverse-voice-webrtc",
    "programs",
    "tests/compat",
    "tools/codegen",
    "tools/ci-matrix",
    "tools/concurrency-audit",
    "tools/performance",
]
default-members = [
    "crates/libremetaverse-types",
    "crates/libremetaverse-structured-data",
    "crates/libremetaverse-imaging",
    "crates/libremetaverse-imaging-skia",
    "crates/libremetaverse-prim-mesher",
    "crates/libremetaverse",
    "crates/libremetaverse-rendering-simple",
    "crates/libremetaverse-rendering-mesh-foundry",
    "crates/libremetaverse-lsl-tools",
    "crates/libremetaverse-rlv",
    "crates/libremetaverse-utilities",
    "crates/libremetaverse-voice-vivox",
    "crates/libremetaverse-opus",
    "crates/libremetaverse-voice-webrtc",
]

[workspace.package]
version = "0.0.1"
edition = "2024"
rust-version = "1.96"
license = "BSD-3-Clause"
repository = "https://git.rfc1437.de/hugo/MetaCrate"

[workspace.lints.rust]
unsafe_code = "forbid"

[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }

# The generated compatibility core is intentionally large. A bounded release
# profile keeps clean-machine packaging viable on the documented 8 GiB worker
# while still producing optimized, debug-free native artifacts.
[profile.release]
opt-level = 1
debug = 0
incremental = false
codegen-units = 256

# The generated core API is intentionally very large; full release LTO-style
# optimization can exceed small Gitea worker memory before diagnostic fixture
# benchmarks run. This stable profile retains optimization without debug or
# incremental artifacts and is used only when explicitly selected.
[profile.benchmark]
inherits = "dev"
opt-level = 1
debug = 0
incremental = false
