C interoperability and libraries
Trusted .plentyi modules describe foreign ABI and lifetime promises. The
compiler checks declared types, ownership, and loans; binding authors and native
callers must supply matching implementations, valid storage, and obey the stated
aliasing rules. Foreign code can violate memory safety. No foreign unwinding or
nonlocal jump may cross Plenty frames.
- Trusted declarations and ABI types.
- Borrowed arguments and text adapters.
- Owning foreign resources.
- Exports and generated C contracts, including owned library objects.
- Embedded contracts and compatibility.
- Runtime loading and trusted loading primitives.
The native ABI targets are x86_64-unknown-linux-gnu and
aarch64-unknown-linux-gnu; the compiler, runtime and library object must match.
See ARM qualification for deployment
limits. Calls and owned exported
objects remain on their creating caller thread, with serialized access as required
by the generated C contract. Ordinary pub controls Plenty imports and does not
export a native symbol. Building and linking
is explicit; source imports alone neither link nor load a library.