- Session::execute is a command span; Model::evaluate and each feature computed (by its type) are spans; io's import, export and design read/write too; the STEP reader's topology, pcurves and solid record. - diagnostics.profile (contract + output schema): report, start/stop, reset, Chrome trace file. - A STEP/IGES import's reply carries its own profile while recording. - Every app compiles the profiler in by default (feature `profile`); SOLIDCRAFT_PROFILE=1 starts it. - solidcraft-cli run/eval/bench-open --profile print the table on stderr, --profile-out writes the trace; run --profile works on designs and STEP files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
1.5 KiB
TOML
43 lines
1.5 KiB
TOML
[package]
|
|
name = "solidcraft-io"
|
|
description = "SolidCraft file formats: designs (JSON), STL, OBJ, STEP, IGES, 3MF and glTF, and FreeCAD/Rhino import"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
# Tests only: trust a model cache even when the build has no git commit.
|
|
trust-unknown-source = []
|
|
|
|
[dependencies]
|
|
solidcraft-geom = { workspace = true }
|
|
solidcraft-kernel = { workspace = true }
|
|
solidcraft-doc = { workspace = true }
|
|
solidcraft-profile = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
zip = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
gltf = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true, features = ["raw_value"] }
|
|
sha2 = { workspace = true }
|
|
chardetng = { workspace = true }
|
|
encoding_rs = { workspace = true }
|
|
# FreeCAD and Rhino import (pure Rust, so the browser build has it too).
|
|
cadmpeg-core = { workspace = true }
|
|
cadmpeg-ir = { workspace = true }
|
|
cadmpeg-registry = { workspace = true }
|
|
|
|
# A plain fsync where a network share refuses Apple's full flush (src/safe_write.rs); already in
|
|
# the tree through tempfile.
|
|
[target.'cfg(target_vendor = "apple")'.dependencies]
|
|
rustix = { version = "1", default-features = false, features = ["std", "fs"] }
|
|
|
|
# The computer's name for a design's lock file (src/design_lock.rs; the browser keeps no lock files).
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
gethostname = { workspace = true }
|