Skip to main content

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`] and
12//! [`LayoutStrategy`] to add new on-disk organizations.
13//!
14//! Scanning is built with [`scan::scan_builder::ScanBuilder`]. It accepts a bound projection,
15//! optional bound filter, optional row range, [`Selection`](vortex_scan::selection::Selection),
16//! split strategy, and task concurrency settings, then produces array streams or iterators.
17pub mod arrays;
18pub mod layouts;
19pub mod plan;
20
21pub use children::*;
22pub use encoding::*;
23pub use layout::*;
24pub use reader::*;
25pub use reader_context::*;
26pub use serde::*;
27pub use strategy::*;
28use vortex_session::registry::Interner;
29pub use vtable::*;
30pub mod aliases;
31mod children;
32pub mod display;
33mod encoding;
34pub mod flatbuffers;
35mod layout;
36mod reader;
37mod reader_context;
38pub mod scan;
39pub mod segments;
40pub mod sequence;
41mod serde;
42pub mod session;
43mod strategy;
44#[cfg(test)]
45mod test;
46mod vtable;
47
48pub type LayoutContext = Interner;