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 mod expression;
23pub mod functions;
24pub mod plan;
25pub mod schema;
26pub mod session;
27pub mod type_coercion;
28pub(crate) mod udfs;
29
30#[cfg(feature = "sql")]
31pub mod sql;
32
33#[cfg(feature = "delta")]
34pub mod delta;
35
36#[cfg(feature = "pyo3")]
37pub mod python;
38
39pub use column::Column;
40pub use dataframe::{CubeRollupData, DataFrame, GroupedData, JoinType, WriteFormat, WriteMode};
41pub use functions::{SortOrder, *};
42pub use schema::{StructField, StructType};
43pub use session::{DataFrameReader, SparkSession, SparkSessionBuilder};