Expand description
Re-exports§
pub use plugin::AsyncSession;pub use plugin::AsyncTask;pub use plugin::Plugin;pub use plugin::Reply;pub use plugin::Session;
Modules§
- plugin
- Trait-based plugin API, inspired by
Pingora’s
ProxyHttp/CTXdesign: implementPluginon a struct and export it withexport_plugin!— no raw pointers, nounsafehandlers, panics contained at the ABI boundary.
Macros§
- define_
plugin - export_
plugin - Exports a
Pluginimplementation as this cdylib’s nylon-ring entry point. Use exactly once per plugin crate; see the module docs for a complete example.
Structs§
- NrAny
- A type-erased value that can hold any data type.
This struct is
#[repr(C)]and ABI-stable. - NrBuffer
Lease - A host-owned output buffer leased to the plugin.
- NrBytes
- A byte slice with a pointer and length.
This struct is
#[repr(C)]and ABI-stable. - NrHost
Ext - Host extension table for state management. This is an optional extension that does not modify the core ABI.
- NrHostV
Table - Host callback table.
- NrIndex
Slot - Index slot for hash table lookup.
This struct is
#[repr(C)]and ABI-stable. - NrKV
- A key-value pair of strings.
- NrKVAny
- A key-value pair with any type as value.
This struct is
#[repr(C)]and ABI-stable. - NrMap
- A map/dictionary type implemented as a vector of key-value pairs with hash index.
This struct is
#[repr(C)]and ABI-stable. - NrOwned
Bytes - A callee-owned byte buffer handed across the ABI without a copy.
- NrPlugin
Info - Metadata exported by the plugin through
nylon_ring_get_plugin. - NrPluginV
Table - Plugin function table.
- NrStatus
- Status code passed across the Nylon Ring ABI.
- NrStr
- A UTF-8 string slice with a pointer and length.
This struct is
#[repr(C)]and ABI-stable. - NrTuple
- A tuple of two elements.
This struct is
#[repr(C)]and ABI-stable. - NrVec
- A vector with a pointer, length, and capacity.
This struct is
#[repr(C)]and ABI-stable.
Enums§
- NrView
Error - Error returned when an ABI string or byte view is malformed.
Constants§
- ABI_
VERSION - The single ABI version implemented by this crate, negotiated through the
nylon_ring_get_pluginexport. Seedocs/ABI_EVOLUTION.md. - NR_
ENTRY_ UNKNOWN - Returned by
resolve_entryfor a name the plugin does not export.