1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
[]
= "BREP_kernel"
= "0.13.0"
= "2021"
= "LICENSE.md"
= "A boundary representation (BREP) geometry kernel for building CAD applications."
= "https://github.com/mmiscool/next.BREP.io_RUST_BREP_KERNEL"
= "https://v2.brep.io"
= "README.md"
= ["cad", "brep", "geometry", "nurbs", "kernel"]
= ["mathematics", "graphics", "algorithms"]
# Only production sources and package metadata are published.
# The `!` entries are a backstop: test code never ships. The publish snapshot
# `cargo package` of this manifest from shipping test files.
= [
"src/**/*.rs",
"/build.rs",
"/Cargo.toml",
"/README.md",
"/LICENSE.md",
"!src/**/tests/**",
"!**/tests.rs",
"!**/*_tests.rs",
"!**/test_support.rs",
"!**/testdata/**",
]
[]
# Published package is BREP_kernel; the lib name is the idiomatic lowercase
# `brep_kernel` — the symbol every `use brep_kernel::` (BREP_render, benches,
# examples) and the wasm-pack artifact names key off.
= "brep_kernel"
= ["cdylib", "rlib"]
[]
= 3 # aggressive opts: loop unrolling + vectorization
= "fat" # full cross-crate Link-Time Optimization
= 1 # single codegen unit lets LLVM optimize globally
= "abort" # drop unwinding code (wasm can't unwind anyway) — smaller/faster
= false # no arithmetic overflow checks in hot paths
[]
# Robust single-region surface fitting for the Refit Faces edit (the same
# RANSAC + least-squares pass the mesh import runs). A geometry leaf: no cycle.
= { = "0.2.0", = "../BREP_RANSAC" }
= { = "1", = ["derive"] }
= { = "1", = ["preserve_order"] }
= "1"
= "2"
= "0.2"
= "1"
= "=2.15.1"
= { = "1", = true }
= { = "1", = true }
[]
# Optional wasm global allocator (feature `wasm-talc`); MIT, no_std.
= { = "5.1.1", = true }
[]
# Optional native global allocator (feature `native-rusty-alloc`): rusty_alloc,
# a pure-Rust mimalloc remake (MIT); the same API crate version the desktop app
# already links through rusty_h264-common's default `global-alloc` feature.
= { = "=2.2.6", = true }
[]
# Diagnostic wall-time partition; ordinary builds compile the hooks away.
= []
# `parallel` turns the per-face tessellation loop into a rayon par_iter. It
# works on native (rayon's own pool) and on wasm built with atomics. The
# DEFAULT build enables neither feature, so the shipped wasm is byte-identical
# to before. `wasm-threads` additionally pulls in wasm-bindgen-rayon so the
# browser can spin up a shared-memory thread pool (requires an atomics build +
# COOP/COEP headers — see build:rust-kernel:threads).
= ["dep:rayon"]
= ["parallel", "dep:wasm-bindgen-rayon"]
# `wasm-talc` replaces Rust's default wasm allocator (dlmalloc) with talc on
# single-threaded wasm builds. Native builds are unaffected.
= ["dep:talc"]
# `native-rusty-alloc` replaces the system allocator with rusty_alloc on native
# builds (headless drivers, benches, servers). Never in a graph that already has
# a global allocator, such as BREP_app's (rusty_h264-common installs this same
# allocator there): Rust allows one per program.
= ["dep:rusty_alloc-api"]