RFC-0016: Plugin and Backend ABI

Status: Draft | Version: 0.1.0

1. Principle

Extensions are loaded through a stable C ABI and PWE schema.

2. Plugin types

Component, System, CompilerPass, PhysicsBackend, RenderBackend, SensorBackend, DeviceBackend.

3. Plugin API

#[repr(C)]
pub struct PwePluginApi {
    pub version: u32,
    pub register_component: unsafe extern "C" fn(*const ComponentDescriptor),
    pub register_system: unsafe extern "C" fn(*const SystemDescriptor),
}

4. Isolation

Plugins do not receive unrestricted World pointers. They receive capabilities, views and handles.

5. Backend contract

A backend declares supported IR features, data layouts, devices, determinism level and required capabilities.

6. Failure

Backend failure must be surfaced as an explicit runtime error. A backend may be quarantined without corrupting World State.

7. Compatibility

Plugin ABI uses versioned function tables with size fields for forward-compatible extension.

8. Acceptance

A backend can be replaced without changing WIR semantics.

results matching ""

    No results matching ""