lumen_plugin_abi/lib.rs
1//! The plumbing under Lumen's plugin systems.
2//!
3//! A Lumen plugin is a Rust cdylib the compiler or the runtime loads and
4//! talks to over a C ABI. The two systems hand each other different things,
5//! so each owns its own descriptor and its own hooks; what they share is
6//! everything underneath that: the buffer and status codes bytes cross on
7//! ([`raw`]), the one bincode call site those bytes go through ([`codec`]),
8//! the `[[plugins]]` declarations in `lumen.toml` ([`config`]), and the
9//! loader helpers that open a library and drive a hook (`dlopen`). The last
10//! one is the loader's half and sits behind a feature of the same name.
11//!
12//! Nothing here resolves a `version` source. `lpm` does that, and `lumenc`
13//! hands the answer to whichever loader needs it.
14//!
15//! Nothing here knows about the engine or the IR, so both plugin systems can
16//! depend on it without depending on each other.
17
18pub mod codec;
19pub mod config;
20#[cfg(feature = "dlopen")]
21pub mod dlopen;
22pub mod raw;