oxidelake_core/lib.rs
1//! Core types shared by every OxideLake crate.
2//!
3//! * [`EngineError`] — the unified error type every library crate converts into.
4//! * [`BackendKind`], [`DeviceId`] — hardware identifiers.
5//! * [`BufferLayout`] — alignment/length descriptor for host and device buffers.
6//! * [`params`] — operator parameter types shared by planner, codec and backends.
7//! * [`TelemetryHub`] — the only coupling between the engine and the dashboard.
8//! * [`BatchStream`] — the stream type every operator produces (DataFusion's).
9//!
10//! Dependency direction: `oxidelake-core` depends on no other OxideLake crate.
11
12#![forbid(unsafe_code)]
13
14pub mod error;
15pub mod hardware;
16pub mod layout;
17pub mod params;
18pub mod telemetry;
19
20pub use error::{EngineError, Result};
21pub use hardware::{BackendKind, DeviceId};
22pub use layout::{BufferLayout, DEVICE_ALIGN, HOST_ALIGN};
23pub use telemetry::{TelemetryHub, TelemetrySnapshot};
24
25/// A stream of Arrow record batches, as produced by every OxideLake operator.
26pub type BatchStream = datafusion::physical_plan::SendableRecordBatchStream;