Skip to main content

reifydb_sdk/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4//! Surface that external code uses to extend ReifyDB - building operators, procedures, transforms, flows, and custom
5//! connectors that plug into the engine. The crate exposes the FFI boundary that out-of-process extensions implement,
6//! the marshalling for values that cross that boundary, and a testing harness so an extension author can run their
7//! code against an in-process engine without a server.
8//!
9//! The shapes of catalog objects, RQL fragments, and result rows that an extension sees here are stable contracts:
10//! the SDK is what insulates third-party code from internal refactors of the engine, the planner, or the storage tier.
11//! Anything that crosses this boundary - identifiers, errors, columnar payloads - has a versioned representation, and
12//! widening that representation requires a coordinated bump on both sides.
13//!
14//! Invariant: the FFI layer does not leak engine-internal types; everything an extension sees comes either from
15//! `reifydb-value` or from this crate's own re-exports. Reaching for an internal engine type from inside an SDK module
16//! ties extension ABI to engine refactors.
17
18#![cfg_attr(not(debug_assertions), deny(clippy::disallowed_methods))]
19#![cfg_attr(debug_assertions, warn(clippy::disallowed_methods))]
20#![cfg_attr(not(debug_assertions), deny(warnings))]
21#![allow(clippy::tabs_in_doc_comments)]
22
23pub mod catalog;
24pub mod config;
25pub mod connector;
26pub mod dictionary;
27pub mod error;
28pub mod ffi;
29pub mod flow;
30pub mod marshal;
31pub mod operator;
32pub mod procedure;
33pub mod rql;
34pub mod state;
35pub mod store;
36pub mod testing;
37pub mod transform;