nemo-relay-ffi
nemo-relay-ffi
nemo-relay-ffi
Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.
C FFI layer for NeMo Relay.
This crate exposes the NeMo Relay core runtime as a C-compatible shared library. It is consumed by the Go bindings via CGo and regenerates the committed nemo_relay.h header through cbindgen during Cargo builds. All exported symbols use the nemo_relay_ prefix.
When a tool or LLM call is executed end-to-end via the _execute functions, the runtime applies the following middleware pipeline in order:
Every extern "C" function returns an error::NemoRelayStatus code. On failure, call error::nemo_relay_last_error on the same thread to retrieve a human-readable error description. The error is stored in thread-local storage and is valid until the next FFI call on that thread.
All opaque handles (FfiScopeHandle, FfiToolHandle, FfiLLMHandle, etc.) are heap-allocated and must be freed through their corresponding nemo_relay_*_free functions. C strings returned by accessor functions must be freed with nemo_relay_string_free.
api - Top-level FFI entry points (scope, tool, LLM, guardrail, intercept, subscriber, ATIF exporter). Tool calls accept an optional tool_call_id and LLM calls accept an optional model_name for ATIF trajectory correlation. ATIF exporter functions (nemo_relay_atif_exporter_*) create, register, export, and clear trajectory data.types - C-compatible struct and enum definitions, plus event accessor functions (nemo_relay_event_input, _output, _model_name, _tool_call_id, _parent_uuid, _scope_type) and the FfiAtifExporter opaque handle.error - Status codes and thread-local error storage.callable - C function pointer typedefs and wrapper functions.convert - JSON and C-string conversion utilities.