Skip to main content

Crate martensite_plugin

Crate martensite_plugin 

Source
Expand description

WebAssembly plugin runtime for Martensite.

This crate embeds a Wasmtime sandbox and exposes a zero-allocation shared memory ring buffer so that third-party widgets can push paint commands at 60 Hz / 120 Hz without host-trampoline overhead. Plugins run with a fuel budget and epoch-based interruption, and every host call is validated against an explicit capability set.

The crate is written entirely in safe Rust.

Re-exports§

pub use ring_buffer::PluginPaintCmd;
pub use ring_buffer::PluginRingBuffer;
pub use ring_buffer::RingBufferError;
pub use ring_buffer::DEFAULT_CAPACITY;
pub use ring_buffer::SHARED_HEADER_SIZE;
pub use runtime::PluginError;
pub use runtime::PluginInstance;
pub use runtime::PluginRuntime;
pub use runtime::PluginState;
pub use runtime::DEFAULT_FUEL_BUDGET;
pub use runtime::RING_BUFFER_REGION_SIZE;
pub use security::Capability;
pub use security::CapabilitySet;
pub use security::PluginBuilder;

Modules§

ring_buffer
Zero-allocation shared-memory ring buffer for paint commands. Zero-allocation shared-memory ring buffer for plugin paint commands.
runtime
Wasmtime sandbox, WASIp1 context, and plugin instance lifecycle. Wasmtime-powered sandboxed runtime for Martensite plugins.
security
Capability-based security model and builder API. Capability-based security sandbox for Martensite plugins.