Robustness at the host boundary¶
Exports run inside third-party hosts, so no panic or C++ exception may cross into one (decision 0287):
- Table and CLAP entry points catch panics; the C++ adapters catch exceptions
at every entry point that can allocate or call the table, and return the
format's error. This relies on Rust's default
panic = "unwind". Do not setpanic = "abort"in a product's release profile: a panic would then end the host process. - Processing paths fault the block with silence instead of panicking, and do not allocate. A panic hook may still allocate and print while a fault is being handled; that happens only on the fault path.
- Every bundle script ships RAVET's licence, the third-party notices of the crates linked into the product, and the Rust standard library notice; see dependency notices.