vortex_layout/lib.rs
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4//! Layout trees, layout readers, scan planning, and segment IO.
5//!
6//! A [`Layout`] is the serialized, row-counted representation of an array tree. It records logical
7//! dtype, child layout relationships, segment ids, and encoding metadata; it does not own the
8//! segment bytes. A [`LayoutReader`] pairs a layout with a [`SegmentSource`](segments::SegmentSource)
9//! and session so scans can evaluate projections and filters.
10//!
11//! Most users enter this crate through file APIs, but extension authors implement [`VTable`],
12//! [`LayoutEncoding`], and [`LayoutStrategy`] to add new on-disk organizations.
13//!
14//! Scanning is built with [`scan::scan_builder::ScanBuilder`]. It accepts a projection expression,
15//! optional filter, optional row range, [`Selection`](vortex_scan::selection::Selection), split
16//! strategy, and task concurrency settings, then produces array streams or iterators.
17pub mod layouts;
18
19pub use children::*;
20pub use encoding::*;
21pub use flatbuffers::*;
22pub use layout::*;
23pub use reader::*;
24pub use reader_context::*;
25pub use strategy::*;
26use vortex_session::registry::Context;
27pub use vtable::*;
28pub mod aliases;
29mod children;
30pub mod display;
31mod encoding;
32mod flatbuffers;
33mod layout;
34mod reader;
35mod reader_context;
36pub mod scan;
37pub mod segments;
38pub mod sequence;
39pub mod session;
40mod strategy;
41#[cfg(test)]
42mod test;
43pub mod vtable;
44
45pub type LayoutContext = Context<LayoutEncodingRef>;