Files
solidcraft/crates/io/Cargo.toml
T
jyvikoandClaude Opus 5.5 9cd655259d Profiler: commands, feature evaluation, io; diagnostics.profile; CLI --profile
- 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>
2026-10-27 11:40:49 -04:00

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 }