alopex-dataframe 0.8.0

Polars-compatible DataFrame API for Alopex DB (v0.1)
Documentation
//! `alopex-dataframe` is a small, Polars-inspired DataFrame API built on Arrow.
//!
//! The v0.1 scope focuses on a minimal eager `DataFrame` and a lazy query pipeline
//! (`LazyFrame`) that compiles logical plans into physical plans and executes them.
//! CSV / Parquet I/O is provided via `arrow-csv` and `parquet`.

mod error;

/// Eager DataFrame and Series types.
pub mod dataframe;
/// Expression DSL used by both eager and lazy APIs.
pub mod expr;
/// CSV / Parquet I/O and option types.
pub mod io;
/// Lazy query planning and optimization.
pub mod lazy;
/// P1 operation types and helpers.
pub mod ops;
/// Physical plan compilation and execution.
pub mod physical;

/// Re-export of the primary eager types.
pub use crate::dataframe::{DataFrame, GroupBy, Series};
/// Re-export of the crate error type and result alias.
pub use crate::error::{DataFrameError, Result};
/// Re-export of the expression DSL entrypoints.
pub use crate::expr::{all, col, concat_str, lit, ConcatStrNullBehavior, Expr};
/// Re-export of eager CSV / Parquet I/O helpers.
pub use crate::io::{read_csv, read_parquet, write_csv, write_parquet};
/// Re-export of the primary lazy type.
pub use crate::lazy::LazyFrame;
/// Re-export of P1 operation types.
pub use crate::ops::{FillNullStrategy, JoinKeys, JoinType, SortOptions};
/// Public bounded-execution options and incremental stream result type.
pub use crate::physical::{budget::StreamOptions, DataFrameStream};

/// Strict vertical concatenation of two or more eager `DataFrame` inputs.
pub fn concat(inputs: Vec<DataFrame>) -> Result<DataFrame> {
    DataFrame::concat(inputs)
}

/// Create a `LazyFrame` that scans a CSV file without performing I/O eagerly.
pub fn scan_csv(path: impl AsRef<std::path::Path>) -> Result<LazyFrame> {
    LazyFrame::scan_csv(path)
}

/// Create a `LazyFrame` that scans a Parquet file without performing I/O eagerly.
pub fn scan_parquet(path: impl AsRef<std::path::Path>) -> Result<LazyFrame> {
    LazyFrame::scan_parquet(path)
}