User Extern not arbitrary Rust crates
Platform spec ADR
User Extern not arbitrary Rust crates
Spec standingStandard
- Rust ABI profile — Boundary and stability What is stable at the Rust runtime ↔ generated code boundary versus implementation-private Rust types.
- Rust ABI profile — Shims and compatibility strategy How future Rust-native interop would layer on top of C ABI exports without breaking the stable runtime contract.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Context
Section titled “Context”Linking arbitrary rlib targets as user Extern would imply unstable Rust ABI across toolchains.
Decision
Section titled “Decision”This profile is not a promise that arbitrary Rust crates can be user Extern targets without shims. User-authored foreign code on the supported path must remain C ABI profile until a future specification promotes additional Rust-native interop.
Consequences
Section titled “Consequences”Embedding docs steer authors to C contracts + shims for Rust libraries.
Verification anchors
Section titled “Verification anchors”/platform-spec/language-meta/interop/rust-abi-profile/ and FFI and extern.