cc-lb-runtime-protocol 0.1.0

cc-lb plugin protocol runtime — handshake, self-check, dispatch, identity, host functions for Extism plugins targeting the cc-lb host.
Documentation
# cc-lb-runtime-protocol

This crate implements the core host-side plugin protocol for cc-lb. It handles the low-level mechanics of loading, negotiating, and executing WebAssembly plugins using Extism.

By separating the protocol logic from the main server runtime, this crate provides a clean boundary that avoids coupling with storage, database, or network layers.

## Purpose

The primary purpose of this crate is to define and execute the five-layer plugin protocol used by the cc-lb host:

1. **Identity**: Reading the plugin's metadata and custom sections.
2. **Handshake**: Negotiating supported versions and capabilities between the host and the plugin.
3. **Self-Check**: Running the plugin's internal self-diagnostic routines.
4. **Persistence**: (Handled by the host registry, not included here).
5. **Dispatch**: Executing the plugin's handlers with proper wire-format envelopes.

This crate is used internally by the cc-lb host runtime and serves as the foundation for the plugin conformance testing suite.

## Public Surface

The crate exposes the following modules:

* `identity`: Functions to read and validate plugin metadata.
* `handshake`: Version negotiation and handshake execution.
* `self_check`: Diagnostic execution and report parsing.
* `dispatch`: Low-level wire call dispatching.
* `host_functions`: Host-provided functions for plugins, such as state storage and quota management.

## Compile Cost Warning

This crate depends directly on Extism and transitively on Wasmtime. Because of this, compiling this crate is resource-intensive and takes a noticeable amount of time. We recommend using it only where necessary, such as in host runtimes or test suites.

## SemVer Note

This crate tracks the cc-lb host version 1:1. Any changes to the underlying plugin protocol or host-side requirements will result in a corresponding version bump.