Files

53 lines
1.8 KiB
TOML

[workspace]
resolver = "3"
members = ["crates/*"]
[workspace.package]
version = "0.0.1"
edition = "2024"
rust-version = "1.96"
license = "GPL-3.0-or-later"
repository = "https://git.briggen.dev/NilsBriggen/vernier"
publish = false
[workspace.dependencies]
# Approved Linux sketch-text font discovery and exact shaping.
fontdb = "0.23"
rustybuzz = "0.20"
ttf-parser = "0.25"
anyhow = "1"
bytemuck = { version = "1", features = ["derive"] }
cxx = "1"
cxx-build = "1"
# PNG only: harness goldens and their diffs (the 2026-09-06 plan's approved
# dependency list). Default features off — this must not drag in a decoder
# for every format on earth to write one PNG.
image = { version = "0.25", default-features = false, features = ["png"] }
indexmap = { version = "2", features = ["serde"] }
pollster = "1"
# Native file dialogs are standing-approved by the project plan.
rfd = { version = "0.16", default-features = false, features = ["xdg-portal", "async-std", "wayland"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = "0.3"
# Locked UI decision (brief §3): egui, behind an abstraction.
egui = "0.36"
egui-wgpu = "0.36"
egui-winit = { version = "0.36", default-features = false }
# Vulkan only, per the locked render decision and invariant #9: a machine
# without a Vulkan ICD must fail loudly with NoAdapter, never fall back to
# a GL rasterizer that would silently invalidate golden screenshots.
wgpu = { version = "30", default-features = false, features = ["std", "parking_lot", "vulkan", "wgsl"] }
winit = "0.30"
# Deny-by-default discipline from CLAUDE.md. Test code may locally
# `#[allow(clippy::unwrap_used)]` — production code may not.
[workspace.lints.rust]
missing_docs = "deny"
[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"