Skip to content

Downstream integration profiles ​

Generated by cargo run -q -p axiolid-contracts --example downstream_profiles. Do not edit by hand.

The v0.4 protocol supports three consumption profiles. These rows define boundary compatibility; they do not claim that every operation is available. A concrete build must return an IntegrationDescriptor, and an operation is advertised only after a provider implementing its operation trait is present and exercised. See ADR 0039.

ProfileTransportDiscoveryCompatibilityAPIABIMSRVOwnershipThread safety
rust-leafRust packages selected directlyselected operation traits plus Backend::descriptorCargo SemVer per selected leaf package0.4.0—1.88Rust-owned valuesSend + Sync values
rust-facadefeature-gated axiolid packagecompiled IntegrationDescriptor plus operation traitsCargo SemVer and additive feature names0.4.0—1.88Rust-owned valuesSend + Sync values
native-cC ABI with opaque handlesABI version and runtime IntegrationDescriptor queryABI major match; additive minor and patch releases0.4.00.4.0—opaque owned handlescontext Send, not Sync

Boundary invariants ​

All profiles use right-handed Cartesian f64 coordinates. Geometry is unitless: coordinates and every explicit tolerance use one caller-selected unit. Approximate or discretizing work requires a caller-visible tolerance. Exact requests either return exact analytic/topological results or typed refusal; they never silently return meshes. Rust values own their allocations. Native outputs are opaque handles released by their matching Axiolid destructor.

Versioned capability vocabulary ​

The protocol recognizes these stable identifiers. Presence here defines vocabulary, not runtime availability; only the descriptor returned by the current build may claim availability.

Capability identifier
org.axiolid.geometry.tessellate.v1
org.axiolid.geometry.mesh-boolean.v1
org.axiolid.geometry.mesh-section.v1
org.axiolid.geometry.mesh-validate.v1
org.axiolid.geometry.mesh-measure.v1
org.axiolid.geometry.ray-mesh.v1
org.axiolid.geometry.exact-extrude.v1
org.axiolid.geometry.graph-to-mesh.v1
org.axiolid.geometry.graph-to-exact-brep.v1
org.axiolid.geometry.curve-evaluate.v1

Typed handshake ​

Consumers submit a CapabilityRequirement containing a versioned capability ID, required output representation, and required fidelity. IntegrationDescriptor::require returns the matching descriptor or a typed RequirementRefusal (ApiVersion, CapabilityUnavailable, RepresentationUnavailable, or ExactnessUnavailable). This check performs no fallback. Provider selection remains explicit and operation traits remain the capability truth.

Verification ​

Run scripts/check-integration-contract.sh to regenerate this document in memory and compare it byte-for-byte. Run scripts/probe_integration_contract_gate.py to prove the gate detects a removed promised identifier and restores the source tree.

Released under the Mozilla Public License 2.0.