New open source Java Data Library CupOfTea Labs released CupOfTea 0.24.0, an open source Java data manipulation library that provides DataFrame-style filtering, aggregation, joins, and statistical operations on a columnar engine using primitive arrays and BitSet null bitmasks. The library requires Java 17 LTS or later and Maven 3.8+ or Gradle 7+, and ships as a modular set of artifacts — cupoftea-core plus optional CSV, JSON, Excel, Parquet, Arrow, Plot, SQL, HTML, YAML, and XML format modules, or the cupoftea-all aggregator. CupOfTea 0.24.0 adds a first-class Schema definition, an NA missing-value model distinct from empty strings, BigDecimal decimal arithmetic, O(n) quantiles and median via Introselect, rolling and expanding windows, and direct mapping to Java Records and POJOs. CupOfTea is a lightweight library for data manipulation in Java. It provides a simple and efficient API to work with large structured datasets, enabling operations such as filtering, aggregation, joining, and data analysis. - Create DataFrames from arrays, lists, CSV files, and other sources. - First-class Schema definition: Schema.of "year", INT, "price", DOUBLE . - Optional automatic type inference on CSV, JSON, and Excel ingest. - First-class missing-value model NA distinct from empty strings "" . - Full support for java.time LocalDate , LocalDateTime , Instant . - Exact currency arithmetic using BigDecimal Schema.DECIMAL . - Column selection, row filtering, grouping, aggregation, and slicing operations. - Relational joins: innerJoin , leftJoin , rightJoin , outerJoin , crossJoin with automatic column deduplication, multi-key support, and customizable suffixes. - Statistical Operations & Summary : High-performance linear$O n $ quantiles and median via Introselect , sample and population variance and standard deviation, skewness, kurtosis, covariance, correlation matrix corr , and descriptive summary describe . - Window, Rolling & Cumulative Functions : Sliding rolling windows df.rolling w , expanding windows df.expanding , cumulative operations cumsum , cumprod , cummin , cummax , time series shifts lead , lag , diff , pctChange , and SQL-like analytical window partitioning and ranking df.window .partitionBy ... .orderBy ... .rank . - Read and write CSV, JSON, Excel, Parquet, and YAML files. - DTO & Record Mapping : Import and export standard Java POJOs/JavaBeans and Java Records directly CupOfTea.read .records ... , df.write .records ... , CupOfTea.read .dtos ... , df.write .dtos ... . - Columnar Engine : High-performance contiguous memory layout ColumnVector with primitive int , double , long , float , boolean , String , and BitSet null bitmasks , eliminating per-cell boxed object overhead and row hash lookups. - Unified Mutation Modes : Fluent IN PLACE builder by default with opt-in COPY ON WRITE via .asCopyOnWrite and .asInPlace . - Deep Copy : Explicit .copy deep-copy method on CupOfTea and IDataFrame . - Immutable Row API : Strongly-typed, unmodifiable Row objects with typed accessors getInt , getString , getDouble , getBoolean , getLocalDate , etc. and zero leaking of internal mutable row maps. - Java : Java 17 LTS or later - Build tool : Maven 3.8+ or Gradle 7+ CupOfTea is modular. You can import only the core engine and whichever IO format modules your project needs, or include cupoftea-all for full format support. Add the core dependency to your pom.xml :