Skip to main content

robin_sparkless/
lib.rs

1//! Robin Sparkless - A Rust DataFrame library with PySpark-like API
2//!
3//! This library provides a PySpark-compatible API built on top of Polars,
4//! offering high-performance data processing in pure Rust.
5//!
6//! # Panics
7//!
8//! Some functions panic when used with invalid or empty inputs (e.g. calling
9//! `when(cond).otherwise(val)` without `.then()`, or passing no columns to
10//! `format_string`, `elt`, `concat`, `coalesce`, `array`, `create_map`, or
11//! `struct`/`named_struct`). See the documentation for each function for
12//! details.
13//!
14//! # API stability
15//!
16//! While the crate is in the 0.x series, we follow [semver](https://semver.org/) but may introduce
17//! breaking changes in minor releases (e.g. 0.1 → 0.2) until 1.0. For behavioral caveats and
18//! intentional differences from PySpark, see the [repository documentation](https://github.com/eddiethedean/robin-sparkless/blob/main/docs/PYSPARK_DIFFERENCES.md).
19
20pub mod column;
21pub mod dataframe;
22pub(crate) mod date_utils;
23pub mod expression;
24pub mod functions;
25pub mod plan;
26pub mod schema;
27pub mod session;
28pub mod type_coercion;
29pub(crate) mod udfs;
30
31#[cfg(feature = "sql")]
32pub mod sql;
33
34#[cfg(feature = "delta")]
35pub mod delta;
36
37#[cfg(feature = "pyo3")]
38pub mod python;
39
40pub use column::Column;
41pub use dataframe::{CubeRollupData, DataFrame, GroupedData, JoinType, WriteFormat, WriteMode};
42pub use functions::{SortOrder, *};
43pub use schema::{StructField, StructType};
44pub use session::{DataFrameReader, SparkSession, SparkSessionBuilder};