BREP
Umbrella crate for the BREP CAD kernel family. One dependency that
re-exports the geometry kernel and, behind feature flags, the higher layers of
the stack — so downstream code says use brep::kernel::… / use brep::render::…
instead of depending on each sibling crate directly.
brep:: module |
Feature | Backing crate | Role |
|---|---|---|---|
kernel |
(always) | BREP_kernel |
The BREP geometry kernel (NURBS B-rep, booleans, tessellation). |
gizmos |
gizmos |
BREP_gizmos |
In-scene gizmos / overlay widgets (pure geometry + hit-testing). |
render |
render |
BREP_render |
Windowing-agnostic wgpu render/pick engine. |
app |
app |
BREP_app |
The eframe (egui + wgpu) CAD application. |
reconstruction |
reconstruction |
BREP_reconstruction |
RANSAC recognition-to-kernel reconstruction. |
The kernel is always re-exported; everything above it is opt-in so a headless
geometry consumer never compiles wgpu / eframe.
[]
= "0.3" # kernel only (headless)
= { = "0.3", = ["render"] } # + the wgpu render engine
= { = "0.3", = ["full"] } # app + render + gizmos
Additional features: reconstruction (opt-in recognition integration), full
(an alias for app, which also enables render and gizmos), and parallel
(forwards to the kernel's rayon-parallel tessellation). full does not enable
reconstruction or parallel; request those separately when needed.
Package vs. lib name: the crates.io package is
BREP; the Rust library isbrep(lowercase, lint-clean). This mirrors the whole family — packageBREP_render/ libbrep_render, etc. See PUBLISHING.md.
The package is versioned at 0.3.0, prepared for release; 0.2.0 is the version currently
live on crates.io. Every dependency — including the optional reconstruction one, which
used to be path-only and therefore made this crate impossible to package at all — now
carries a registry version beside its path, and every crate it names is publishable.
The facade is published LAST, because an optional dependency still has to resolve on the
registry at publish time. See PUBLISHING.md for the order.