Expand description
Stable native plugin boundary for Mesh’s local Skippy serving path.
The ABI is deliberately smaller than Mesh’s Rust crate graph. Plugins are independently compiled dynamic libraries, so only fixed-layout values, opaque handles, borrowed byte/token slices, and host-owned output buffers cross the boundary. Rust collections, trait objects, futures, and allocator ownership never do.
Every function in the table must be thread-safe and return promptly. In particular, proposal submission and polling must never wait for proposer work. Mesh invokes proposal functions on an isolated host worker and owns the absolute decode deadline; a plugin that violates this contract can strand only that worker, never the model decode thread.
Structs§
- Activation
Context - Byte
Slice - Generation
Abort - Generation
Commit - Generation
Finish - Generation
Start - Generation
Termination - Native
Serving Plugin V1 - Plugin
Activation - Plugin
Status - Proposal
Discard - Proposal
Discard Reason - Proposal
Disposition - Proposal
Outcome - Proposal
Output - Proposal
Poll Status - Proposal
Query - Token
Slice - Tokenizer
Inventory - Host-owned typed inventory. This Rust value never crosses the ABI directly.
- Tokenizer
Inventory Entry - Borrowed ABI view of one immutable native token. The referenced bytes are
valid only for the duration of
activate; a plugin must copy or transform them before it returns. - Tokenizer
Inventory Token - Tokenizer
Inventory View - Borrowed ABI view of the complete vocabulary. The host owns the entries and their bytes and passes them only while activating the plugin.
- Tokenizer
Piece Kind - U64Slice
Enums§
Constants§
- MAX_
DECISION_ ID_ BYTES - NATIVE_
SERVING_ PLUGIN_ ABI_ V1 - NATIVE_
SERVING_ PLUGIN_ ENTRY_ V1 - TOKENIZER_
INVENTORY_ SCHEMA