Skip to content
Beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

21.4 Rust ABI profile

Runtime-facing Rust ABI—not arbitrary crate imports.

Rust ABI profile

Rust ABI profile documents the language-owned runtime boundary. The linked normative Standard still defines ABI v4. The pinned compiler implementation uses ABI-v5 runtime kits and entrypoints. This conflict is under reconciliation by the Standard and compiler owners; do not claim that the linked Standard defines ABI-v5. The runtime exposes C-compatible entrypoints to loaders. Rust-specific choices stay inside its crate boundary.

Caution: This is a runtime-only profile, not a Rust-native application FFI. A user-authored extern target must stay on the C ABI profile. When that target is implemented in Rust, provide a C-compatible shim rather than linking the Rust crate through this profile.

Treat the profile as an integration contract

Section titled “Treat the profile as an integration contract”

Read the profile when changing runtime integration. It defines the supported runtime surface; ordinary Rust crate APIs are not part of a user extern surface. For application interop, design the C contract and shim first. When runtime work directs you to registration or dispatch details, follow those links rather than relying on private symbols.

Export and callbacks

21. FFI