Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Rust ABI profile

Platform spec feature

Rust ABI profile

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

What this feature specifies

The Rust ABI profile describes how the Beskid runtime (implemented in Rust) exposes stable C-compatible entrypoints to JIT and AOT loaders while allowing Rust-specific implementation choices inside the runtime crate boundary.

This profile is not a promise that arbitrary Rust crates can be linked as user Extern targets without shims. User-authored foreign code on the supported path remains the C ABI profile until a future specification promotes additional Rust-native interop.

Implementation anchors

  • Exported symbol names: compiler/crates/beskid_abi/src/symbols.rs
  • Builtin ABI shapes for lowering: compiler/crates/beskid_abi/src/builtins.rs
  • Runtime exports and modules: compiler/crates/beskid_runtime/src/lib.rs, compiler/crates/beskid_runtime/src/builtins/mod.rs
  • Syscall and panic bridges (example of extern "C-unwind" usage): compiler/crates/beskid_runtime/src/builtins/panic_io.rs
  • JIT registration of runtime symbols: compiler/crates/beskid_engine/src/jit_module.rs
  • Symbol inventory and runtime ABI references: /platform-spec/execution/runtime/

No open decisions. Closed choices are normative ADRs under adr/ (D-LMETA-RUSTABI-0001D-LMETA-RUSTABI-0003); use the reader ADRs tab for detail.

Articles